作者:Lemon
来源:Python数据之道
Plotly中4种文本类型设置详解
大家好,我是 Lemon 。
在过去的一段时间里,我写了几篇用 Python 的交互式可视化工具 Plotly 来演示全球疫情情况的文章,如下:
-
用 Plotly 动态柱状图来演示全球疫情变化趋势
-
用 Python可视化神器 Plotly 动态演示全球疫情变化趋势
-
超火动态排序疫情变化图,这次我们用 Plotly来绘制
-
用 Python 动态曲线图来对全球疫情进行演示
-
升级版,用Python来进行多条曲线动态演示全球疫情变化
有不少同学都问到图表中文本如何设置,今天 Lemon 来跟大家分享下。
Plotly 中文本设置大概可以分为四种类型,效果如下:
下面将以 Plotly Express 中的设置为基础,来介绍这 4种类型的详细情况。
项目环境背景
本文的数据来自开源项目 tushare, 从 tushare 中获取数据,首先要进行注册获取 token(一串字母和数字组成的文本),然后才可以获取到数据,大家可以通过以下链接来注册(也可以点击文末的“阅读原文”):
https://tushare.pro/register?reg=129033
本文的代码是在 Jupyter notebook 环境中运行,Python 环境版本及其他工具如下:
-
Python 3.7
-
pandas version: 1.0.3
-
tushare version: 1.2.51
-
plotly version: 4.5.0
数据获取
在 tushare 中注册后,通过 “个人主页”——“接口TOKEN” 可以找到自己的 token 值,界面如下:
复制 token 值,然后在代码中进行如下设置:
1 2 3 4 5 | # 设置 token # tushare 注册地址:https://tushare.pro/register?reg=129033 # 以上方法只需要在第一次或者token失效后调用,完成调取tushare数据凭证的设置,正常情况下不需要重复设置。 ts.set_token('你的token值') pro = ts.pro_api() |
在设置好 token 值后,我们就可以开始获取数据,这里以获取股票代码是 “000001.SZ” 的企业为例,来描述 Plotly 中文本设置。
数据获取及初步整理如下:
1 2 3 4 5 6 7 | df = pro.daily(ts_code='000001.SZ', start_date='19900101', end_date = '20200425' ) # 设置时间格式 df['trade_date'] = pd.to_datetime(df['trade_date']) df |
Plotly 中文本设置
这次,我们以 Plotly express 为例,来阐述文本的设置,在原生的 plotly 中,文本设置的方式也是一致的。
文本的设置分为 4中类型,分别是
这4种类型的文本,前3种相对而言比较好设置,
下面以柱状图为例来进行说明,代码如下:
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 | df_bar = df[:10] # df_bar fig_bar = px.bar(df_bar, x='vol', y='trade_date', orientation='h', text='vol', # 设置柱状图柱子上的显示文本 title='volumn', # 设置图表标题 width=600, height=800, # template='plotly_white', labels={'vol':'交易量', # 设置标签显示名称 'trade_date':'日期', } ) # 设置文字注释内容 annotation = [dict(x=0.8, xref='paper', #使用相对坐标 y=0.98, yref='paper', text='Python数据之道', showarrow=False, # 不显示箭头 ), ] fig_bar.update_layout(annotations= annotation) fig_bar.show() |
效果如下:
上图中,对 4种类型的文本进行了初步设置,当然你可能觉得有点丑,想更个性化的设置,比如 标题(title)居中、设置标题文本颜色,等等, 类似效果如下:
上面这些效果在 Plotly 中也是可以实现的,大家可以自己研究下,或者在公众号 「Python数据之道」 后台回复数字 「662」获取完整的代码来查看。
-------------------End-------------------
公众号后台回复「微信群」,将邀请加入读者交流群。
“分享”和“在看”是更好的支持!