后面分享过一篇自动化制作《历史上的明天》工夫线图片的文章,小伙伴们广泛反映还不错,尤其是制作工夫线的办法,还是十分奇妙的。明天咱们再来分享几种不同的制作方法,大家能够自行比拟下各种办法的优劣
Matplotlib 制作
Matplotlib 作为 Python 家族最为重要的可视化工具,其根本的 API 以及绘制流程还是须要把握的。尤其是该库的灵便水平以及作为泛滥工具的根底,重要性显而易见
上面咱们来看下该如何绘制一个工夫线图表
导入库以及设置 XY 轴数据
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
y1 = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
x1 = [4, 4, 4, 4, 4, 4, 4, 4, 4, 4]
因为是通过折线图来实现工夫线成果,为了达到一条竖线的状况,这里设置了 X 轴数值都雷同,Y 轴数值等差散布
创立画布及题目
fig, ax = plt.subplots(sharey=True, figsize=(7, 4))
ax.plot(x1, y1, label='First line', linewidth=3, color='r', marker='o', markerfacecolor='white', markersize=12)
plt.title('萝卜大杂烩')
plt.suptitle('历史上的明天', fontsize=16, color='red')
此时成果如下
接下来咱们设置工夫线两边的数据
# 右侧数据
right_y_year = 0.95
right_y_text = 0.9
year_right = 1931
for i in range(5):
plt.text(0.57, right_y_year, str(year_right+1), fontsize=15, horizontalalignment='center', verticalalignment='center',
transform=ax.transAxes, color='black')
plt.text(0.75, right_y_text, "从百草园到三味书屋 - 鲁迅" + str(i), fontsize=15, horizontalalignment='center', verticalalignment='center',
transform=ax.transAxes, color='red')
right_y_year -= 0.2
right_y_text -= 0.2
year_right += 1
# 左侧数据
left_y_year = 0.85
left_y_text = 0.8
year_left = 1941
for i in range(5):
plt.text(0.43, left_y_year, str(year_left+1), fontsize=15, horizontalalignment='center', verticalalignment='center',
transform=ax.transAxes, color='black')
plt.text(0.2, left_y_text, "从百草园到三味书屋 - 鲁迅" + str(i), fontsize=15, horizontalalignment='center', verticalalignment='center',
transform=ax.transAxes, color='red', url='https://www.baidu.com')
left_y_year -= 0.2
left_y_text -= 0.2
year_left += 1
这里次要应用了 text 函数,为工夫线轴两边别离增加数据
如果咱们还想要增加集体的其余信息,比方公众号二维码等,能够在指定地位减少图片,同时去掉坐标轴
# 减少图片
img = plt.imread('二维码.png')
ax2 = plt.axes((0.7, 0.1, 0.3, 0.3))
ax2.imshow(img, origin='lower', alpha=0.5)
ax2.axis('off')
ax.axis('off')
plt.show()
最终成果如下
能够看出,因为 text 函数是通过坐标来确定文字显示的地位的,所以咱们的工夫线轴两边的数据分布还是不是特地完满,不晓得是否有其余的更加不便的办法来设置
Plotly 绘制
Plotly 作为 Python 家族另一个十分弱小的可视化工具,同样能够实现工夫线图的绘制
在绘图之前,完满先解决数据
这里应用的数据是 2020 年全年的微博热搜数据
import pandas as pd
weibo = pd.read_csv("weibo_2020.csv")
def deal_date(frame):
tmp = frame.split('-')
return tmp[0] + '-' + tmp[1]
weibo['new_date'] = weibo['date'].apply(lambda x : deal_date(x))
key_list_right = []
for i in range(1, 12, 2):
if i < 10:
mydate = '2020-0%s' % str(i)
else:
mydate = '2020-%s' % str(i)
keyword = weibo[weibo['new_date'] == mydate].sort_values(by='searchCount', ascending=False)['keyword'].tolist()[0]
searchCount = weibo[weibo['new_date'] == mydate].sort_values(by='searchCount', ascending=False)['searchCount'].tolist()[0]
mount = str(i) + '月'
content = ','.join([keyword, str(searchCount) + '搜寻量', mount])
key_list_right.append(content)
print(key_list_right)
Output:
['最新疫情地图,18130201 搜寻量,1 月',
'肖战工作室赔罪,13117531 搜寻量,3 月',
'何鸿燊逝世,15302424 搜寻量,5 月',
'高考作文,15647446 搜寻量,7 月',
'乘风破浪的姐姐成团之夜,8226994 搜寻量,9 月',
'特朗普,7310000 搜寻量,11 月']
能够看到,通过下面的数据处理,咱们胜利提取了 1、3、5、7、9 以及 11 月的当月搜寻量最高的热搜题目,同理能够获取到双月份的热搜题目数据
上面开始作图
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import pandas as pd
from plotly.graph_objs import *
layout = Layout(paper_bgcolor='rgba(0,0,0,0)',
plot_bgcolor='rgba(0,0,0,0)',
title={'text': '微博热搜', 'x': 0.5},
yaxis={'title': 'Proportion (%)'}
)
fig = go.Figure(layout=layout)
fig.add_traces([go.Scatter(x=[2,2,2,2,2,2], y=[5, 10, 15, 20, 25, 30], text=key_list_right, textposition="bottom right", mode="lines+text"),
go.Scatter(x=[2,2,2,2,2,2], y=[5, 10, 15, 20, 25, 30], textposition="top left", mode="lines+text", text=key_list_left)])
fig.update_traces(showlegend=False)
fig.update_layout(xaxis=dict(visible=False), yaxis=dict(visible=False))
fig.show()
通过 Plotly 绘图就绝对简略很多了,间接应用 text 参数把咱们失去的热搜数据增加上即可
最终成果如下
成果很奢侈,是因为咱们没有进行过多的款式设置,大家能够自行摸索下不同款式啊
Excel 绘制
下面的两种办法都须要有肯定的代码根底,上面介绍的 Excel 办法则能够说是人人都能实现,一起来看看吧
先来看看最终的成果
首先筹备数据,咱们在新建的 Excel 文档中创立如下数据
而后插入散点图
先插入一个空白散点图,而后将 X 轴设置为【年份】,Y 轴设置为【地位】,再把 Y 轴和网格线都删除
接下来咱们丑化一下 X 轴
咱们双击 X 轴,调出格局窗口,在坐标轴选项标签中设置【单位】,将【小】改为 1,设置【刻度线】,将【主刻度线】设置为穿插。再点击【油漆桶】,抉择一个线条的色彩,将宽度调整为 2,将【结尾箭头类型】调整为向右箭头
再接下来咱们把 X 轴连接起来
首先抉择一个散点,增加误差线。而后把横向的误差线设置为无轮廓,再选中竖向的误差线,把【垂直误差线】设置为负偏差,再把误差量设置为 100%,最初再给竖向误差线调整款式即可
上面开始增加数据
咱们把公司的各种大事件增加到数据表当中
向图表中增加【数据标签】,即数据中事件那一列,而后再去掉 Y 值即可
最初咱们还能够通过 Excel 自带的各种图标进行丑化操作
好了,以上就是明天分享的所有内容,如果对你有帮忙,帮忙点赞和在看反对哦~
本文由 mdnice 多平台公布