脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python利用D3Blocks绘制可动态交互的图表

Python利用D3Blocks绘制可动态交互的图表

2023-06-02 14:01欣一2002 Python

今天小编给大家来介绍一款十分好用的可视化模块,D3Blocks,不仅可以用来绘制可动态交互的图表,并且导出的图表可以是HTML格式,方便在浏览器上面呈现,感兴趣的可以了解一下

今天小编给大家来介绍一款十分好用的可视化模块,D3Blocks,不仅可以用来绘制可动态交互的图表,并且导出的图表可以是HTML格式,方便在浏览器上面呈现。

Python利用D3Blocks绘制可动态交互的图表

热力图

热力图是一种通过对色块着色来显示数据的统计图表。绘图时需要指定颜色映射的规则。例如较大的值由较深的颜色表示,而较小的值由较浅的颜色表示等等。热力图适用于查看总体的情况,发现异常值、显示多个变量之间的差异,以及检测它们之间是否存在任何相关性。

我们这里来尝试绘制一张简单的热力图,代码如下

?
1
2
3
4
5
6
7
8
9
10
from d3blocks import D3Blocks
 
# 初始化
d3 = D3Blocks()
 
# 导入数据集
df = d3.import_example('energy')
 
# 绘制热力图
d3.heatmap(df, showfig=True, stroke='red', vmax=10, figsize=(700,700))

output

Python利用D3Blocks绘制可动态交互的图表

粒子图

D3Blocks模块当的particles()方法可以方便我们将任何字体转换成带有动态效果的粒子图,跟随着鼠标的移动,图表中的元素也会动态的起伏飞舞,代码如下

?
1
2
3
4
5
6
7
8
# 导入模块
from d3blocks import D3Blocks
 
# 初始化
d3 = D3Blocks()
 
# 绘制粒子图
d3.particles('D3Blocks', collision=0.05, spacing=10, figsize=[1200, 500])

output

Python利用D3Blocks绘制可动态交互的图表

时间序列图

时间序列的折线图,又被称为是趋势图,是以时间为横轴,观察变量为纵轴,用来反映时间与数量之间的关系,这里我们调用的是timeseries()方法,代码如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 导入模块
from d3blocks import D3Blocks
 
# 初始化
d3 = D3Blocks()
 
# 导入数据集
df = d3.import_example('climate')
 
# 打印出前面5行
print(df.head())
 
# 绘制图表
d3.timeseries(df, datetime='date', dt_format='%Y-%m-%d %H:%M:%S', fontsize=10)

output

Python利用D3Blocks绘制可动态交互的图表

桑基图

桑基图是用于描述一组值到另一组值的流向的图表。在图表的内部,不同的线条代表了不同的流量分流情况,线条的宽度代表此分值所代表的数据大小。通常用于能源、材料成分、金融等数据的可视化分析。这里我们调用的是sankey()方法来实现,代码如下

?
1
2
3
4
5
6
7
8
9
10
from d3blocks import D3Blocks
 
# 初始化
d3 = D3Blocks()
 
# 导入数据集
df = d3.import_example('energy')
 
# 绘制图表
d3.sankey(df, link={"color": "source-target"})

output

Python利用D3Blocks绘制可动态交互的图表

小提琴图

小提琴图可以用来绘制数据的分布以及其概率密度,针对的是数值型的变量,这种图表结合了箱型图和密度图的特征,主要用来显示数据的分布形状。这里我们调用violin()方法来实现,代码如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 导入模块
from d3blocks import D3Blocks
 
# 初始化
d3 = D3Blocks()
 
# 导入数据集
df = d3.import_example('cancer')
 
# 显示的格式
tooltip = df['labels'].values + ' <br /> Survival: ' + df['survival_months'].astype(str).values
 
# 可视化图表
d3.violin(x=df['labels'].values, # X轴上的值
          y=df['age'].values,    # 年龄
          tooltip=tooltip,       # 显示的格式
          bins=50,               # bins的大小
          size=df['survival_months'].values/10, # 点状的大小
          x_order=['acc', 'kich', 'brca', 'lgg', 'blca', 'coad', 'ov'], # X轴的上的值
          figsize=[None, None],                                    # 图表的大小
          filepath='violine_demo.html')

output

Python利用D3Blocks绘制可动态交互的图表

散点图

散点图通常用于查看X轴与Y轴之间是否有关联,它的绘制,我们这里调用的是scatter()方法,代码如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 导入模块
from d3blocks import D3Blocks
 
# 初始化
d3 = D3Blocks()
 
# 导入数据集
df = d3.import_example('cancer')
 
# 显示数据的格式
tooltip=df['labels'].values + ' <br /> Survival: ' + df['survival_months'].astype(str).str[0:4].values
# 散点的大小
size = df['survival_months'].fillna(1).values / 10
 
# 绘制图表
d3.scatter(df['x'].values,              
           df['y'].values,           
           x1=df['PC1'].values,        
           y1=df['PC2'].values,        
           scale=True,                 
           label_radio=['tSNE', 'PCA'], # 不同标签的种类
           size=size,                  
           color=df['labels'].values,  
           stroke='#000000',           
           opacity=0.4,                 # 透明度
           tooltip=tooltip,             # 显示的格式
           cmap='tab20',                # 颜色
           filepath='c://temp//scatter_demo.html')

output

Python利用D3Blocks绘制可动态交互的图表

弦图

弦图是一种显示数据矩阵中内部数据之间相互关系的图形可视化方法。在弦图内,数据围绕一个圆呈放射状排列,数据点之间的关系通常绘制为连接数据的圆弧。这里我们调用chord()方法来实现,代码如下

?
1
2
3
4
5
6
7
8
9
10
from d3blocks import D3Blocks
 
# 初始化
d3 = D3Blocks()
 
# 导入数据集
df = d3.import_example('energy')
 
# 绘制图表
d3.chord(df, filepath='chord_demo.html')

output

Python利用D3Blocks绘制可动态交互的图表

网络图

除了上面这几种图表之外,D3Blocks模块还可以来绘制社交网络图,这里用到的是d3graph()方法,代码如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from d3blocks import D3Blocks
 
# 初始化
d3 = D3Blocks()
 
# 导入数据集
df = d3.import_example('energy')
 
# 打印出前5行数据
print(df)
 
# 初始化网络图
d3.d3graph(df, showfig=False)
 
# 每个节点打上颜色
d3.D3graph.set_node_properties(color='cluster')
 
# 调整每个节点的位置
d3.D3graph.node_properties['Thermal_generation']['size']=20
d3.D3graph.node_properties['Thermal_generation']['edge_color']='#000fff' # 蓝色的节点
d3.D3graph.node_properties['Thermal_generation']['edge_size']=3 # Node-edge Size
 
# 调整每个连线的位置
d3.D3graph.edge_properties['Solar', 'Solar_Thermal']['color']='#000fff'
d3.D3graph.edge_properties['Solar', 'Solar_Thermal']['weight_scaled']=10
 
# 绘制图表
d3.D3graph.show()

output

Python利用D3Blocks绘制可动态交互的图表

以上就是Python利用D3Blocks绘制可动态交互的图表的详细内容,更多关于Python D3Blocks图表的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/weixin_43373042/article/details/128541720

延伸 · 阅读

精彩推荐
  • PythonOpenCV图像变换之傅里叶变换的一些应用

    OpenCV图像变换之傅里叶变换的一些应用

    这篇文章主要给大家介绍了关于OpenCV图像变换之傅里叶变换的相关资料,傅里叶变换可以将一幅图片分解为正弦和余弦两个分量,换而言之,他可以将一幅图像...

    程序媛一枚~9512021-12-15
  • PythonPython生成器定义与简单用法实例分析

    Python生成器定义与简单用法实例分析

    这篇文章主要介绍了Python生成器定义与简单用法,结合实例形式较为详细的分析了Python生成器的概念、原理、使用方法及相关操作注意事项,需要的朋友可以...

    Tom文星5132021-02-08
  • Python如何利用pyecharts画好看的饼状图

    如何利用pyecharts画好看的饼状图

    这篇文章主要给大家介绍了关于如何利用pyecharts画好看的饼状图的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学...

    南波兔不写巴哥7692021-09-25
  • PythonPython批量裁剪图片的思路详解

    Python批量裁剪图片的思路详解

    这篇文章主要介绍了Python批量裁剪图片的程序代码,是批量裁剪某一文件夹下的所有图片,并指定裁剪宽高,本文给大家分享实现思路,需要的朋友可以参考...

    zstar-_5162022-07-07
  • Python详解pycharm连接不上mysql数据库的解决办法

    详解pycharm连接不上mysql数据库的解决办法

    这篇文章主要介绍了详解pycharm连接不上mysql数据库的解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    liuzz0711422020-04-29
  • PythonPython实例方法、类方法、静态方法区别详解

    Python实例方法、类方法、静态方法区别详解

    这篇文章主要介绍了Python实例方法、类方法、静态方法区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    多测师_郑sir6932020-09-06
  • PythonPython基础之函数与控制语句

    Python基础之函数与控制语句

    在调用函数的时候,如果没有按照形参传入指定的参数,就会报错,这时,我们可以为函数的参数设置默认的值,下面这篇文章主要给大家介绍了关于Python基础之...

    是日秋和7772022-12-01
  • Pythonpython入门之算法学习

    python入门之算法学习

    这篇文章主要介绍了python入门之算法学习,文中介绍的非常详细,对想要入门python的小伙伴们有很好地帮助,需要的朋友可以参考下...

    321yu10422021-10-18