介绍一个Python可视化神器,绘制出来的图表惊艳了所有的人!!

news2024/12/28 9:58:50

新年快乐,时间过得真的是很快,已经到了新的一年了,今天小编给大家来介绍一款十分好用的可视化模块,D3Blocks,不仅可以用来绘制可动态交互的图表,并且导出的图表可以是HTML格式,方便在浏览器上面呈现。

15d6c3e1cafa80c98a7a9ecd7063ec19.png

热力图

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

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

from d3blocks import D3Blocks

# 初始化
d3 = D3Blocks()

# 导入数据集
df = d3.import_example('energy')

# 绘制热力图
d3.heatmap(df, showfig=True, stroke='red', vmax=10, figsize=(700,700))

output

4ec2be119886c46b0c6ccc52038d185b.gif

粒子图

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

# 导入模块
from d3blocks import D3Blocks

# 初始化
d3 = D3Blocks()

# 绘制粒子图
d3.particles('D3Blocks', collision=0.05, spacing=10, figsize=[1200, 500])

output

675ecc1a6fbb8431e90ba06c79f9c99e.gif

时间序列图

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

# 导入模块
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

c6d88bcd8e7242ba0e37abc28a50c725.gif

桑基图

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

from d3blocks import D3Blocks

# 初始化
d3 = D3Blocks()

# 导入数据集
df = d3.import_example('energy')

# 绘制图表
d3.sankey(df, link={"color": "source-target"})

output

b8c0de4e83f765ee54f83e688a1da1ad.gif

小提琴图

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

# 导入模块
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

cdc56231d1112b9863f537a4aa816baa.gif

散点图

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

# 导入模块
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

78cfdb75bef3321235425a9d85f521f8.gif

弦图

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

from d3blocks import D3Blocks

# 初始化
d3 = D3Blocks()

# 导入数据集
df = d3.import_example('energy')

# 绘制图表
d3.chord(df, filepath='chord_demo.html')

output

540ae27254e4ecd27cd68b3988a4cdb6.png

网络图

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

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

58a99c92a0a30650ad4d50472f336703.gif

NO.1

往期推荐

Historical articles

盘点了Python与Excel交互的常用操作

API 接口开发也没那么难,Python FastAPI Web 框架教程来了!

介绍一个助你事半功倍的数据挖掘神器!!

总结归纳了10个超级实用的数据可视化图表

分享、收藏、点赞、在看安排一下?

7e49652a655f9525f16ec0dda3c9147a.gif

d781c50372db9b5f9ebde7a4d9965d81.gif

ba03312748e78f264cd78a6c196c327b.gif

8890bc9f4aa0184de4d3bc0c66f570c1.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/138066.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【小程序】模板与配置

文章目录WXML 模板语法数据绑定事件绑定bindtap 的语法格式bindinput 的语法格式实现文本框和 data 之间的数据同步条件渲染wx:ifhidden列表渲染WXSS 模板样式rpx样式导入全局样式和局部样式全局配置windowtabBar页面配置网络数据请求配置 request 合法域名发起 GET 请求发起 P…

XMLHttpRequest的基本使用

1、什么XMLHttpRequest XMLHttpRequest&#xff08;简称 xhr&#xff09;是浏览器提供的 Javascript 对象&#xff0c;通过它&#xff0c;可以请求服务器上的数据资源。之前所学的 jQuery 中的 Ajax 函数&#xff0c;就是基于 xhr 对象封装出来的。 2、使用xhr发起GET请求 步骤…

Java --- spring6的Bean的作用域

目录 一、bean的作用域为单例 二、bean的作用域为多例 三、Bean作用域的Scope属性的其它值 四、Bean作用域的自定义Scope 一、bean的作用域为单例 public class SpringBean {public SpringBean() {System.out.println("构造方法被调用");} } spring配置文件 &…

Java中的Future详解

1. Future的应用场景 在并发编程中&#xff0c;我们经常用到非阻塞的模型&#xff0c;在之前的多线程的三种实现中&#xff0c;不管是继承thread类还是实现runnable接口&#xff0c;都无法保证获取到之前的执行结果。通过实现Callback接口&#xff0c;并用Future可以来接收多线…

python 生成csv中文出现乱码问题解决

最开始的核心代码如下: with open("/hardisk/exeport.csv", "w") as f: 核心代码 f.writelines("时间,事件描述,源ip,源端口,目的ip,目的端口,协议,告警等级,接口,告警次数,事件英文详述" "\r") for v in raw: f.write(str(v).re…

Python 二维码的读取与生成:使用链接生成二维码、读取二维码里的链接

Python 二维码的读取与生成演示① 使用链接生成二维码② 读取二维码里的链接[ 文章推荐 ] Python 绘制中国地图&#xff1a;使用 pyecharts 最新版本绘制中国地图实例详解&#xff0c;个性化地图定制及常用参数解析 ① 使用链接生成二维码 通过 pip install qrcode 安装 qrco…

C#语言实例源码系列-游戏-实现贪吃蛇

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 &#x1f449;关于作者 众所周知&#xff0c;人生是一个漫长的流程&#xff0c;不断克服困难&#xff0c;不断反思前进的过程。在这个过程中…

云原生技术在离线交付场景中的实践

作者介绍&#xff1a;郭逊&#xff0c;交付部总监&#xff0c;7年运维经验&#xff0c;云原生深度爱好者软件产品只有交付到用户手中才有价值&#xff0c;本人在面向政府等 ToG 场景的软件交付领域具有数年的工作经验&#xff0c;深知其中痛点。今天借助这篇文章&#xff0c;分…

启动报名:首届“星河杯”隐私计算大赛正式上线

当前&#xff0c;隐私计算技术发展迅速&#xff0c;行业应用稳步增长&#xff0c;逐渐成为实现数据安全流通的关键技术路径之一。然而&#xff0c;隐私计算发展过程中仍面临技术应用瓶颈、行业影响有限等挑战&#xff0c;亟需加快技术攻关、提升行业影响、深化产业应用。在此背…

PyFlink1.16.0 使用说明:建表及连接Mysql数据库

PyFlink1.16.0 使用说明&#xff1a;建表及连接Mysql数据库引言安装运行环境PyFlink创建作业环境一、创建一个 Table API 批处理表环境二、创建一个 Table API 流处理表环境三、创建一个 DataStream API 数据流处理环境PyFlink建表一、从Python List对象创建一个 Table二、创建…

理解Cookie 和 Session 的工作流程

又是一年初,首先祝大家新年快乐!!!Cookie什么是Cookie?由于HTTP是一种无状态的协议, 服务器单从网络连接上是无法知道用户身份的. 这时候服务器就需要给客户端发一个cooki, 用来确认用户的身份.简单的来说, cookie就是客户端保存用户信息的一种机制, 用来记录用户的一些信息.找…

基于JAVA的数据可视化分析平台,自由制作任何您想要的数据看板,支持接入SQL、CSV、Excel、HTTP接口、JSON等

数据可视化分析平台 自由制作任何您想要的数据看板 简介 DataGear是一款数据可视化分析平台&#xff0c;自由制作任何您想要的数据看板&#xff0c;支持接入SQL、CSV、Excel、HTTP接口、JSON等多种数据源。 完整代码下载地址&#xff1a;基于JAVA的数据可视化分析平台&…

Python模块与包(八)

python学习之旅(八) &#x1f44d;查看更多可以关注查看首页或点击下方专栏目录 一.模块 (1) 什么是模块 一个Python文件,以.py 结尾,能定义函数,类和变量,也能包含可执行的代码 作用&#xff1a;我们可以认为不同的模块就是不同工具包,每一个工具包中都有各种不同的工具(如函…

Vue初识系列【2】

一 Vue入门 1.1 Vue简介 Vue 是一套用于构建用户界面的渐进式框架&#xff0c;发布于 2014 年 2 月。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库&#xff08;如&a…

ZYNQ printk 缓冲区读取

之前调试kenel &#xff0c;如果kenenl崩溃会&#xff0c;通过内核system.map定位log_buf变量地址&#xff0c;给cpu复位&#xff0c;在u-boot中读取对应的物理地址&#xff0c;即可知道最终内核崩溃最后打出的消息。 我在使用 5.4.154这个内核版本&#xff0c;中没有log_buf这…

金蝶附件上传接口开发思路

1️⃣需求描述&#xff1a;需要通过调用金蝶API接口实现指定单据的附件上传。本文以收料通知单为例&#xff0c;以Java代码示例进行讲解。 tips&#xff1a;阅读本文开始前&#xff0c;希望你是一名开发者同时阅读过&#xff1a; https://vip.kingdee.com/article/872325739310…

【小知识点】为爬虫训练场项目添加 Bootstrap5 时间轴

爬虫训练场建站时间轴&#xff1a;https://pachong.vip/timeline 背景 为了便于记录爬虫训练场项目更新日志&#xff0c;所以集成该功能&#xff0c;实现效果如下所示。 特别备注一下&#xff0c;时间轴是什么&#xff1f; 时间轴是一种常用的网站布局元素&#xff0c;通常用…

Forexclub:特斯拉四季度交付车辆创纪录,你认为2023年特斯拉销量如何

周一特斯拉宣布其2022年第四季度交付了创纪录的405278辆汽车。这一数字创下了该公司的纪录&#xff0c;但低于华尔街的估计。据报道&#xff0c;报告中对交付量的普遍估计为420760。特斯拉称&#xff1a;“2022年&#xff0c;汽车交付量同比增长40%&#xff0c;达到131万辆。”…

基于Vue和SpringBoot的论文检测系统的设计与实现

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;Java全栈软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发&#xff08;Vue、SpringBoot和微信小程序&#xff09;、系统定制、远程技术指导。CSDN学院、蓝桥云…

【信息论与编码 沈连丰】第七章:信息率失真理论及其应用

【信息论与编码 沈连丰】第七章&#xff1a;信息率失真理论及其应用第七章 信息率失真理论及其应用7.1 失真函数和平均失真度7.2 信息率失真函数7.3 信息率失真函数R(D)的计算7.4 保真度准则下的信源编码定理7.5 信息率失真函数与信息价值第七章 信息率失真理论及其应用 香农第…