当前位置:   article > 正文

如何将D3.js的强交互延续到Python中?

d3blocks

本期分享一个Python工具d3blocks,可轻松将JavaScript中的D3.js强交互可视化能力延续到Python中。

一个实例, PCA图结合tSNE图

5a91298114d85a9b76acbb65a574447d.gif

可以看到,d3blocks的结果是可交互的,可轻松实现结果的局部选取、每个点数据显示、展示模式切换(左下侧PCA、tSNE插件)等。

而且d3blocks只需几行Python代码,告别D3.js的长代码,此处使用d3.scatter()函数,

  1. # 导入d3blocks
  2. from d3blocks import D3Blocks
  3. import numpy as np
  4. # 初始化
  5. d3 = D3Blocks()
  6. # 数据准备
  7. df = d3.import_example('mnist')
  8. size = np.random.randint(08, df.shape[0])
  9. opacity = np.random.randint(08, df.shape[0]) / 10
  10. tooltip = df['y'].values.astype(str)
  11. # 绘图
  12. d3.scatter(
  13.     df['PC1'].values,  # PCA图主成分PC1 x轴数据
  14.     df['PC2'].values,  # PCA图主成分PC2 y轴数据
  15.     x1=df['tsne_1'].values,  # tSNE图x轴数据
  16.     y1=df['tsne_2'].values,  # tSNE图y轴数据
  17.     color=df['y'].values.astype(str),
  18.     tooltip=tooltip,  # 设置点的值
  19.     size=size,
  20.     opacity=opacity,  # 设置点透明度
  21.     stroke='#000000',
  22.     cmap='tab20',  # 设置Colormap
  23.     scale=True,
  24.     label_radio=['PCA''tSNE'],
  25.     figsize=[1024768],
  26.     filepath='scatter_demo.html',  #设置结果名称,结果为网页html格式
  27. )

再看一个案例,网络图,使用d3.d3graph()函数,

373aa326a3abd3813f9be56e33a4e595.gif

再看一个案例,桑基图(Sankey diagram),使用d3.sankey()函数,

  1. from d3blocks import D3Blocks
  2. d3 = D3Blocks()
  3. df = d3.import_example('energy')
  4. d3.sankey(df,
  5.           title='Sankey - d3blocks',
  6.           filepath='sankey.html',
  7.           figsize=(800600),
  8.           node={"align""justify""width"15"padding"15"color""currentColor"},
  9.           link={"color""source-target""stroke_opacity"0.5},
  10.           margin={"top"5"right"1"bottom"5"left"1},
  11.           showfig=True,
  12.           overwrite=True)

137a601c1a8adff2e0e5d8024e1e0f49.gif

再看一个案例,图像展示(imageslider),当需要比较实验前后结果差异时,非常好用,5e438525bc366ba7427712866566fb40.gif此外,还支持时间序列图(d3.timeseries())、heatmap图(d3.heatmap())、气泡图(d3.movingbubbles())等,不一一举例,用法都很一致,传送门https://github.com/d3blocks/d3blocks59aebe6d5c7ab33fd118dfa469992211.png

-------- End --------

推荐

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/562975
推荐阅读
相关标签