Python数据可视化进阶指南:是时候告别柱状图和方块图了!
off999 2024-12-01 02:07 35 浏览 0 评论
关注我,每天用Python做一件有趣的事,掌握一些实用的技巧。
数据可视化是数据分析中最基本的一项技能,为了让我们的数据更具说服力,数据形象化就是一个很好的工具。在这篇文章中,我们将介绍5种超越柱状图和方块图的可视化技术,这些技术可以使你的数据加美观和有效。我们将使用python中的Plotly图形库,它能够以最小的工作量提供动画和交互式绘图。
Plotly的优点是什么?
绘图是高度集成的:与jupyter notebooks一起产生作用,可以嵌入到网站中,并与Dash完全集成——Dash是构建仪表板和分析应用程序的一个很好的工具。
正式开始
如果你没有安装plotly,只需在终端中运行以下命令:
pip install plotly接下来正式开始数据可视化进阶教程。
1.动画
我们的工作经常涉及到时间数据,我们研究这个或那个指标的演变。绘图动画是一个很好的工具,可以通过一行代码观察数据在时间上的变化。
import plotly.express as px
from vega_datasets import data
df = data.disasters()
df = df[df.Year > 1990]
fig = px.bar(df,
y="Entity",
x="Deaths",
animation_frame="Year",
orientation='h',
range_x=[0, df.Deaths.max()],
color="Entity")
# improve aesthetics (size, grids etc.)
fig.update_layout(width=1000,
height=800,
xaxis_showgrid=False,
yaxis_showgrid=False,
paper_bgcolor='rgba(0,0,0,0)',
plot_bgcolor='rgba(0,0,0,0)',
title_text='Evolution of Natural Disasters',
showlegend=False)
fig.update_xaxes(title_text='Number of Deaths')
fig.update_yaxes(title_text='')
fig.show()只要你有一个时间变量来过滤,几乎所有的数据都可以动画化。设置散点图动画的示例:
import plotly.express as px
df = px.data.gapminder()
fig = px.scatter(
df,
x="gdpPercap",
y="lifeExp",
animation_frame="year",
size="pop",
color="continent",
hover_name="country",
log_x=True,
size_max=55,
range_x=[100, 100000],
range_y=[25, 90],
# color_continuous_scale=px.colors.sequential.Emrld
)
fig.update_layout(width=1000,
height=800,
xaxis_showgrid=False,
yaxis_showgrid=False,
paper_bgcolor='rgba(0,0,0,0)',
plot_bgcolor='rgba(0,0,0,0)')2.太阳风暴图
太阳风暴图是一个很好地可视化你的数据的方式。如果你想通过一个或多个分类变量来分解一个给定的数量,那就去做一个日光图。
比如说,我们要分解一天中每个性别和时间的平均消费金额。这是一个双group by语句,可以通过可视化而不是表输出有效地传递:
绘图是交互式的,允许你单击并浏览每个类别。你只需要定义所有类别,声明它们之间的层次结构并分配相应的值,在我们的例子中,这将是group by语句的输出。
import plotly.graph_objects as go
import plotly.express as px
import numpy as np
import pandas as pd
df = px.data.tips()
fig = go.Figure(go.Sunburst(
labels=["Female", "Male", "Dinner", "Lunch", 'Dinner ', 'Lunch '],
parents=["", "", "Female", "Female", 'Male', 'Male'],
values=np.append(
df.groupby('sex').tip.mean().values,
df.groupby(['sex', 'time']).tip.mean().values),
marker=dict(colors=px.colors.sequential.Emrld)),
layout=go.Layout(paper_bgcolor='rgba(0,0,0,0)',
plot_bgcolor='rgba(0,0,0,0)'))
fig.update_layout(margin=dict(t=0, l=0, r=0, b=0),
title_text='Tipping Habbits Per Gender, Time and Day')
fig.show()现在,让我们在层次结构中添加另一层:
因此,我们在另一个group by语句中添加包含三个分类变量的值。
import plotly.graph_objects as go
import plotly.express as px
import pandas as pd
import numpy as np
df = px.data.tips()
fig = go.Figure(go.Sunburst(labels=[
"Female", "Male", "Dinner", "Lunch", 'Dinner ', 'Lunch ', 'Fri', 'Sat',
'Sun', 'Thu', 'Fri ', 'Thu ', 'Fri ', 'Sat ', 'Sun ', 'Fri ', 'Thu '
],
parents=[
"", "", "Female", "Female", 'Male', 'Male',
'Dinner', 'Dinner', 'Dinner', 'Dinner',
'Lunch', 'Lunch', 'Dinner ', 'Dinner ',
'Dinner ', 'Lunch ', 'Lunch '
],
values=np.append(
np.append(
df.groupby('sex').tip.mean().values,
df.groupby(['sex',
'time']).tip.mean().values,
),
df.groupby(['sex', 'time',
'day']).tip.mean().values),
marker=dict(colors=px.colors.sequential.Emrld)),
layout=go.Layout(paper_bgcolor='rgba(0,0,0,0)',
plot_bgcolor='rgba(0,0,0,0)'))
fig.update_layout(margin=dict(t=0, l=0, r=0, b=0),
title_text='Tipping Habbits Per Gender, Time and Day')
fig.show()3.平行类别
探索分类变量之间关系的另一个好方法是这个流程图。你可以在移动中拖放、突出显示和探索价值观,这对演示非常有用。
import plotly.express as px
from vega_datasets import data
import pandas as pd
df = data.movies()
df = df.dropna()
df['Genre_id'] = df.Major_Genre.factorize()[0]
fig = px.parallel_categories(
df,
dimensions=['MPAA_Rating', 'Creative_Type', 'Major_Genre'],
color="Genre_id",
color_continuous_scale=px.colors.sequential.Emrld,
)
fig.show()4.平行坐标
平行坐标绘图是上述绘图的连续版本。在这里,每个和弦代表一个单独的观察。这是一个很好的工具,用于发现异常值(与其他数据隔离的单线程)、集群、趋势和冗余变量(例如,如果两个变量的每个观测值相似,它们将位于水平线上并指示冗余)。
5.仪表图和指示器
仪表仅仅是为了美观。它们是报告一些成功指标或关键绩效指标并将它们与目标联系起来的一种好方法。
指标在商业和咨询领域非常有用。它们用文本标记来补充你的视觉效果,吸引你的观众的注意力,并传达你的成长指标。
最后,如果你对Python数据可视化感兴趣,我们还有一篇更加全面的的文章,大家可以点击标题进行收藏学习:《Python数据可视化的完整版操作指南(建议收藏)》
--END--
欢迎大家关注我们的公众号:为AI呐喊(weainahan)
为了帮助更多缺少项目实战的同学入门Python,我们在头条上创建了一个专栏:《7小时快速掌握Pthon核心编程》,欢迎大家点击下方链接或者阅读原文进行试看~
相关推荐
- windows xp 死机之歌(windows死机之歌完整)
-
无法正常关机,其原因有:1、关机前运行了很多程序尚未关闭,造成关机命令延后执行或系统假死。2、关机程序与其它程序发生冲突或损坏。3、病毒感染,或者是硬盘或内存出现问题等等。处理办法:1、强制...
- win10新硬盘分区(win10硬盘分区整数对照表)
-
要对一个新硬盘进行分区,你可以按照以下步骤进行操作:1.连接新硬盘到计算机上,并确保它被正确地识别。2.打开“文件资源管理器”或者按下Win键+E来打开资源管理器窗口。3.在资源管理器左侧的导航...
- 华硕电脑官网驱动下载(华硕官网驱动下载教程)
-
在华硕官网上查找和下载驱动的步骤如下:1.打开华硕官网的支持页面:https://www.asus.com/support/2.在“输入型号名称以开始支援”搜索框中,输入你的华硕设备型号或者序列号...
- 电脑无线网络连接在哪里打开
-
1、首先打开控制面板,在开始菜单中打开。2、打开控制面板之后,找到网络和共享中心这个选项,然后打开。3、打开网络和共享中心之后,这里有详细的关于网络连接方面的信息。点击中部的设置新的连接或网络。4、如...
- 蓝屏怎么进入安全模式(电脑蓝屏怎么进入安全模式)
-
电脑蓝屏进入安全模式的方法如下:方法一:点击“开始菜单”图标,随后选择其中的“设置”图标进入。电脑会弹出设置界面,直接在搜索框中输入“恢复”进行搜索。点击“恢复”中的“高级选项”,随后选择“立即启动”...
- 能打开psd格式的软件(psd可以用什么软件打开)
-
可以打开,具体操作方法步骤如下:01手机打开medibang创建一个空白的画布。02右下角选择“图层”管理。03点击“+”加号,在菜单中选择“选择图片追加”。04选择图片会弹出窗口,调节旋转角度以及...
- office 2010下载 免费完整版
-
1、先下载office2010完整安装包免费版。2、最开始安装的时候,需要借助一款微软专用清理工具:msiclear。下载软件后双击msicuu2.exe运行软件。3、运行msicuu2.exe后...
- ide接口转sata接口线(ide接口转sata接口 bios设置)
-
ide接口转sata接口慢的很,IDE接口转SATA接口后的传输数据速率只能达到IDE接口的传输速度。ide接口:是电子集成驱动器,数据传输速度慢、线缆长度过短、连接设备少,速度100M/s。SATA...
- 网络不好怎么办(无线网网络不好怎么办)
-
调整发射功率首先,我们进入到无线路由器的管理后台,在无线设置中找到“发射功率”这一选项。由于国家规定无线路由器发射功率不得超过100mw,所以许多无线路由器在出厂时默认的发射功率为规定的50%或75%...
- win7最低配置硬盘基本要求(windows7最低硬盘要求)
-
操作系统对于硬件平台要求并不高,不要别老旧的误传给误导了。无论是windows7还是windows10都是如此。windows7系统安装时要求的最低硬盘空间分别是16GB可用硬盘空间(3...
- 笔记本锐龙处理器性能排行(最新笔记本锐龙处理器)
-
锐龙和酷睿处理器各有优势,看使用场景。1、只考虑玩游戏对于游戏玩家来说intel酷睿处理器更好一些,不是说锐龙就不好,只是对于某些主流网游,尤其腾讯系列游戏,酷睿系列更适合,因为腾讯游戏只吃单线程频率...
- 电脑声音未安装音频设备怎么办
-
这种情况属于声卡安装不正确,只需要更新声卡驱动即可解决,步骤如下:所需材料:电脑、驱动人生。一、首先打开驱动人生软件,进入主界面后点击“立即体检”。二、扫描完成后,点击声卡右边的“小箭头”。三、弹出的...
- createview教学一体机(createview教学一体机怎么开机)
-
一体机启动方法如下:1、首先打开电脑,点击“下一步”默认值不需要修改;2、点击“接受”;3、点击左下边的“跳过此步骤”;4、点击“使用快速设置”;5、在此只需要输入一个英文用户名,其他的都不需要填写...
- win10关机代码bat(windows关机命令bat)
-
要编写一个定时关机的BAT文件,你可以按照以下步骤进行操作:1.打开文本编辑器(如记事本)。2.在新建的文本文件中,输入以下命令:```@echooffecho正在关闭计算机...shutdo...
- wlan不可上网怎么回事(wlan显示不可上网怎么办回事)
-
无线网没有设置好,可以重新设置下。没有使用路由器时,电脑直接连接宽带上网,现在使用路由器共用宽带上网,则需要用路由器来直接连接宽带。根据入户宽带线路的不同,可以分为网线、电话线、光纤三种接入方式。连接...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
