【Python】在Python中轻松玩转D3.js可视化

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

一个实例, PCA图结合tSNE图

259f291476bcdaddbe52e9532a88174a.gif

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

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

# 导入d3blocks
from d3blocks import D3Blocks
import numpy as np

# 初始化
d3 = D3Blocks()

# 数据准备
df = d3.import_example('mnist')
size = np.random.randint(0, 8, df.shape[0])
opacity = np.random.randint(0, 8, df.shape[0]) / 10
tooltip = df['y'].values.astype(str)

# 绘图
d3.scatter(
    df['PC1'].values,  # PCA图主成分PC1 x轴数据
    df['PC2'].values,  # PCA图主成分PC2 y轴数据
    x1=df['tsne_1'].values,  # tSNE图x轴数据
    y1=df['tsne_2'].values,  # tSNE图y轴数据
    color=df['y'].values.astype(str),
    tooltip=tooltip,  # 设置点的值
    size=size,
    opacity=opacity,  # 设置点透明度
    stroke='#000000',
    cmap='tab20',  # 设置Colormap
    scale=True,
    label_radio=['PCA', 'tSNE'],
    figsize=[1024, 768],
    filepath='scatter_demo.html',  #设置结果名称,结果为网页html格式
)

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

baef7bcf315051724998122e590ce767.gif

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

from d3blocks import D3Blocks
d3 = D3Blocks()
df = d3.import_example('energy')
d3.sankey(df,
          title='Sankey - d3blocks',
          filepath='sankey.html',
          figsize=(800, 600),
          node={"align": "justify", "width": 15, "padding": 15, "color": "currentColor"},
          link={"color": "source-target", "stroke_opacity": 0.5},
          margin={"top": 5, "right": 1, "bottom": 5, "left": 1},
          showfig=True,
          overwrite=True)

efe2a716fb40014a82f823f0b85864c3.gif

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

-END-

再分享一份原创Python可视化教程(基于py可视化利器seaborn):530张图形+8000行代码+详细代码注释+后续免费更新+学习交流群,部分目录,

 加入学习要趁早,随着加入学习的小伙伴越多,维护成本越来越大,   月底将对价格适当调整,优惠截止于7月31日24:00。

8d2c2844fb852881980d0aedfb0c468a.gif

ea002024a00d58a2234282b233100f7c.png41857db7051280990e19ec30ff8aea2e.png93465b2cc0c5b520223d33acc74843d1.png

e4c2a3c8da2491bdbb4135a4a640a841.gif

每类图表包含详细代码+详细代码注释,多达8000行代码,例如,d5fa83b626dea60d44c43b2dba3488d3.png

 
 
 
 

ab3fa59342db49eda2af3d67f782b970.jpeg

 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑
  • 交流群

欢迎加入机器学习爱好者微信群一起和同行交流,目前有机器学习交流群、博士群、博士申报交流、CV、NLP等微信群,请扫描下面的微信号加群,备注:”昵称-学校/公司-研究方向“,例如:”张小明-浙大-CV“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~(也可以加入机器学习交流qq群772479961)

2d8823897a394e706115a3f291bfb2ff.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值