作者:俊欣
来源:关于数据分析与可视化
相信大家对一些常规的可视化图表都比较熟悉了 , 例如像是折线图、柱状图、饼图等等 , 今天小编通过Plotly Express模块来为大家绘制几个不常见但是特别惊艳的图表 。
SunBurst ChartSunBurst Chart大家一般称作是旭日图或者是太阳图 , 和饼图的结构十分地相似 , 但是比后者更加能表达清晰的层级和归属关系 。在旭日图当中 , 离圆点越近表示级别就越高 , 相邻两层中是内层包含外层的关系 。
在实际项目当中使用旭日图 , 不仅数据直观 , 而且图表使用起来特别的酷炫 , 可以迅速地拉高数据汇报的颜值 。代码如下
import plotly.express as pximport numpy as npdf = px.data.gapminder().query("year == 2002")fig = px.sunburst(df, path=['continent', 'country'], values='pop',color='lifeExp', hover_data=https://www.isolves.com/it/cxkf/yy/Python/2022-06-20/['iso_alpha'],color_continuous_scale='RdBu',color_continuous_midpoint=np.average(df['lifeExp'], weights=df['pop']))fig.show()
output
文章插图
当中的textinfo参数来调整标签的表达形式 , 例如以百分比的形式来显示所占的比例 , 代码如下
fig = px.sunburst(...和上面的代码一样...)fig.update_traces(textinfo="label+percent entry")fig.show()
output文章插图
Treemap树形图(Treemap)适用于层级结构更加鲜明的数据当中 , 在一个树形图中 , 图表被分割成了若干个矩形 , 其中矩形的大小有数值的大小而定 , 我们来看一下具体的代码实现
fig = px.treemap(df, path=[px.Constant("world"), 'continent', 'country'], values='pop',color='lifeExp', hover_data=https://www.isolves.com/it/cxkf/yy/Python/2022-06-20/['iso_alpha'],color_continuous_scale='RdBu',color_continuous_midpoint=np.average(df['lifeExp'], weights=df['pop']))fig.update_layout(margin = dict(t=50, l=25, r=25, b=25))fig.show()
output文章插图
Polar Charts在plotly.express模块当中 , 我们既可以在极坐标图当中添加散点 , 也可以在上面放置折线 , 其中极坐标中的散点图调用的是px.scatter_polar()方法来实现 , 代码如下
import plotly.express as pxdf = px.data.wind()fig = px.scatter_polar(df, r="frequency", theta="direction",color="strength", symbol="strength", size="frequency",color_discrete_sequence=px.colors.sequential.Plasma_r)fig.show()
output文章插图
【用Python当中Plotly.Express模块绘制几张图表,真的被惊艳到了】极坐标中的折线图调用的则是px.line_polar()方法 , 代码如下
fig = px.line_polar(df, r="frequency", theta="direction", color="strength", line_close=True,color_discrete_sequence=px.colors.sequential.Plasma_r,template="plotly_dark",)fig.show()
output文章插图
Gantt Charts桑基图(Gantt Charts)被用来表示项目工程的进展十分有帮助 , 其中纵轴表示的是项目的名称 , 横轴表示的是日期 , 能够非常直观地表达项目的周期以及进展 , 代码如下
df = pd.DataFrame([dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28'),dict(Task="Job B", Start='2009-03-05', Finish='2009-04-15'),dict(Task="Job C", Start='2009-02-20', Finish='2009-05-30')])df.head()
output文章插图
数据当中有项目的开始日期和结束日期 , 然后我们调用px.timeline方法来绘制成桑基图 , 代码如下
fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task")fig.update_yaxes(autorange="reversed")fig.show()
output文章插图
当然要是不同的项目由不用的人来负责 , 我们也可以在图表上面标注出来 , 代码如下
推荐阅读
- 内网穿透利器-ngrok的图文安装
- MyBatis 的 4 个妙用,别再踩坑了
- Excel不会Ctrl+G就out了,4种统计用法详解,让工作更高效
- 小孩能喝乌鸡汤吗乌鸡和什么炖,乌鸡用什么材料煲汤给小孩喝-
- 买了NAS不会用?“人工”这样找才是正确姿势
- Python的各种框架
- Ubuntu 22.04 LTS 不用再自己写rc-local.service了
- 群晖NAS使用官网域名和自己的域名配置SSL实现HTTPS访问
- 加密网络通信,IPSec 的配置
- 有什么类 XShell 或者 Putty 的工具?最最最好用的远程工具没有之一