Python 是另一个漂亮而酷炫的动态数据可视化工具,可以与之动态交互

小夏 科技 更新 2024-01-30

Python 下有很多漂亮的数据可视化库,比如 matplotlib、seaborn、bokeh、plotly、pyecharts 等,我们直接使用这些第三方库进行漂亮的数据可视化操作。 虽然这些库可以很好地显示数据,但很多库在实现动态交互时,并不支持动态交互。

我们之前介绍了pyecharts,它不仅可以可视化数据,还可以支持动态交互,并且易于安装,只需要在python环境下使用pip即可。 在本期中,我们将介绍另一个动态交互式数据可视化库 D3Blocks。

D3Blocks 是一个用于创建独立交互式图表的框架。 除了 Python 之外,您无需安装任何其他内容即可创建 D3Blocks 图,您只需要一个浏览器来绘制图并与他人共享,无需安装 Python 和 D3Blocks 即可运行。

D3 是 Data-Driven Documents 的缩写,它是一个 j**ascript 库,用于在 Web 浏览器中生成动态的交互式数据可视化。 它利用可扩展矢量图形 (SVG)、HTML5 和级联样式表 (CSS) 标准。 D3 也称为 D3js 或 d3js。

D3 的主要优点是它符合 Web 标准,因此除了浏览器之外,您不需要任何其他技术来绘制图表。 D3Blocks 创建的每个图表都完全封装到一个 HTML 文件中,这使得在 ** 上共享或发布变得非常容易。 d3blocks 的安装也很简单,你只需要使用以下 2 行命令中的一个即可完成安装,安装完成后,我们就可以使用 d3blocks 了。

pip install git+ install d3blocks

目前,D3Blocks 支持以下动态交互块。

timeserieschordd3graphelasticgraphsankeyheatmapmovingbubblesimagesliderscatterviolinparticlestreemaptreecirclepacking

对于每个库,官方都提供了示例**,以便用户可以直接使用。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('climate')d3.timeseries(df, datetime='date', dt_format='%y-%m-%d %h:%m:%s', fontsize=10, figsize=[850, 500])

我们创建了一个时间序列块,根据名称我们知道这个块是一个时间序列,从可视化图表中,我们可以将鼠标放在任意位置来查看这个时间的数据,并且我们可以使用框选择方法,选择局部区域,方便查看详细数据。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('energy')d3.chord(df)

第二个是和弦框图,当然我们也可以用自己的数据来可视化。 和弦块表示多个实体或节点之间的流动或连接。 每个实体都由圆形布局之外的片段表示。 然后,在每个实体之间绘制一个圆弧。 电弧的大小与流速的大小成正比。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('energy') d3.d3graph(df, filepath='d3graph.html')d3.d3graph(df, scaler='minmax')d3.d3graph.set_node_properties(color=none)d3.d3graph.node_properties['solar']['size']=30d3.d3graph.node_properties['solar']['color']='#ff0000'd3.d3graph.node_properties['solar']['edge_color']='#000000'd3.d3graph.node_properties['solar']['edge_size']=5d3.d3graph.show()d3.d3graph.set_edge_properties(directed=true, marker_end='arrow')d3.d3graph.show()d3.d3graph.node_propertiesd3.d3graph.edge_propertiesd3.d3graph.show()

D3Graph 是一个动态和交互式的网络图,允许您设置每个节点的颜色和大小,甚至可以向网络添加箭头。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('energy') # 'stormofswords'd3.elasticgraph(df, filepath='elasticgraph.html')d3.elasticgraph.show()d3.elasticgraph.d3graph.show()d3.elasticgraph.show()d3.elasticgraph.d3graph.show()d3.elasticgraph.d3graph.node_propertiesd3.elasticgraph.d3graph.edge_properties

elasticgraph块类似于电子核的结构,将每条数据关联起来,并且可以详细引用数据,双击每个节点将展开每条数据。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('energy')d3.sankey(df)

桑基桑基图是一个数据流可视化块,用于描述从一组数据到另一组数据的流。 在这种情况下,节点表示为矩形框、流或箭头。 箭头的宽度与流速成正比。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('stormofswords') # 'energy'd3.heatmap(df)

热图是反映数据之间关系的图,从图中我们可以看出,这个图类似于我们解释Transformer模型时的注意力机制图,它反映了注意力的关系,颜色越深,两个数据之间的关系越大。

from d3blocks import d3blocksd3 = d3blocks()df = d3.import_example('random_time', n=10000, c=300, date_start="1-1-2000 00:10:05", date_stop="1-1-2000 23:59:59")d3.movingbubbles(df, speed=, filepath='movingbubbles.html')

移动气泡图说明了数据的运动,我们可以用这个图来表示动物的迁徙等。

from d3blocks import d3blocksd3 = d3blocks()img_before = cv2.imread(img_before, -1)img_after = cv2.imread(img_after, -1)d3.imageslider(img_before, img_after)d3.imageslider(img_before, img_after, showfig=true, scale=true, colorscale=2, figsize=[400, 400])

ImageSlider 体现了 2 前后 **的对比功能,我们可以直接在 HTML 上查看 2 ** 前后的更改。

当然,D3Blocks还包含其他视觉块,包括散点、小提琴、树状图、树形、圆形包装等。

from d3blocks import d3blocksd3 = d3blocks()d3.particles('d3blocks')d3.particles('d3blocks', filepath='d3blocks.html', collision=0.05, spacing=7, figsize=[750, 150], fontsize=130, cmap='turbo', color_background='#ffffff')

最后,这个粒子很有意思,我们可以用它来推广我们的标志,把它放在我们的产品主页上,或者做**来推广。

有关更多动态可视化,请参阅 D3Blocks 库。

相似文章

    又一部“人像手机之王”即将上映!Vivo S18 亮点抢先看!

    对于vivo的年轻一代来说,人像拍摄是他们最重要的题材,但也是最难的题材。让V迷们兴奋的是,一直被誉为 人像相机之王 的S系列终于要推出重磅产品了,月日 ,我们将能够看到它的真面目!消息称,S Pro采用与X相同的索尼IMX旗舰主摄,万像素的超广角摄像头,以及XS的长焦人像摄像头。更令人振奋的是,S...

    继Mate60之后,又一款麒麟新机即将发布,华为享享70值得期待吗?

    华为享享 延续高端旗舰设计,如何突破低端机型?华为将于 月 日开始预售其 手机 Enjoy 。虽然这款手机被归类为中低端机型,但华为并没有在这一点上妥协,而是延续了高端旗舰的设计理念,在流畅度上加入了出厂前的HarmonyOS 系统。这款手机能否取得与Mate系列一样出色的销售成绩?在外观设计上,华...

    接管华为!另一个卫星移动终端在这里

    众所周知,多亏了麒麟s芯片和G网络的回归,今年Mate 系列引爆了整个网络。因为这意味着,时隔年,华为终于成功突破了外界的封锁。但严格来说,不管是麒麟芯片还是。g,这两者都很难称得上遥遥领先。毕竟麒麟S处理器的性能只相当于两年前高通骁龙的水平,而G早已是手机行业的标配。如果不得不说遥遥领先,卫星通话...

    世界上“第一”的隐形坦克,外观酷炫,也可以变身为汽车的形状

    坦克的诞生可以追溯到世纪初,当时坦克被用来突破战壕线,成为地面作战的重要力量。随着技术的发展,坦克在战场上发挥着越来越重要的作用。它们不仅具有强大的火力和装甲,而且还能够提供机动性和支援作战单位的能力。在战争中,坦克作为重要的地面作战单位,是每个队伍的标配,是打赢胜仗的关键。坦克的发展历史可以追溯到...

    12月,12月19日正式宣布另一款新机,并正式发布

    月即将进入月中旬,月初,也发布了多款新手机,从低端到高端,比如华为享 一加等机型。华为享享 主要在低端市场,而一加 主要在旗舰市场,毕竟很多方面的配置都是旗舰级的,比如处理器 屏幕 内存等。还有一款realme GT Pro,同样定位于旗舰市场,但有些配置不如OnePlus 高,尤其是在屏幕和内存方...