返回顶部
首页 > 资讯 > 后端开发 > Python >Python几种绘制时间线图的方法
  • 732
分享到

Python几种绘制时间线图的方法

2024-04-02 19:04:59 732人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录Matplotlib 制作Plotly 绘制excel 绘制Matplotlib 制作 Matplotlib 作为 python 家族最为重要的可视化工具,其基本的 api 以及

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')

此时效果如下:

alt

接下来我们设置时间线两边的数据

# 右侧数据
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 自带的各种图标进行美化操作

好了,以上就是今天分享的所有内容,如果对你有帮助,帮忙点赞和在看支持哦~

到此这篇关于Python几种绘制时间线图的方法的文章就介绍到这了,更多相关Python绘制时间线图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python几种绘制时间线图的方法

本文链接: https://lsjlt.com/news/119919.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python几种绘制时间线图的方法
    目录Matplotlib 制作Plotly 绘制Excel 绘制Matplotlib 制作 Matplotlib 作为 Python 家族最为重要的可视化工具,其基本的 API 以及...
    99+
    2024-04-02
  • matplotlib绘制两点间连线的几种方法实现
    目录绘制方法<1>绘制方法<2>使用pyplot绘制图像绘制方法<3>使用axes类绘制图像绘制方法<4>使用figure类绘制图像为...
    99+
    2024-04-02
  • Matplotlib绘制子图的常见几种方法
    前言 Matplotlib的可以把很多张图画到一个显示界面,在作对比分析的时候非常有用。 对应的有plt的subplot和figure的add_subplo的方法,参数可以是一个三位...
    99+
    2024-04-02
  • python运行时间的几种方法
    最早见过手写的,类似于下面这种: import datetime def time_1(): begin = datetime.datetime.now() sum = 0 for i ...
    99+
    2022-06-04
    几种方法 时间 python
  • python绘制折线图和条形图的方法
    本文实例为大家分享了python绘制折线图和条形图的具体代码,供大家参考,具体内容如下 最近开始写小论文啦,中间不免要作各种各样的图,学习后自己作了个小笔记,供小伙伴一起学习哦。 折...
    99+
    2024-04-02
  • python绘制散点图和折线图的方法
    本文实例为大家分享了python绘制散点图和折线图的具体代码,供大家参考,具体内容如下 #散点图,一般和相关分析、回归分析结合使用 import pandas import ...
    99+
    2024-04-02
  • C#绘制实时曲线图的方法详解
    在终端机器上的曲线显示本打算用控件,可控件折腾好长时间也没弄顺,还是自己写的好使,记录下来后面再改进。 //绘图部分的定义 Int32 Draw_To...
    99+
    2024-04-02
  • Python中获取时间戳的几种方法
    Python中获取时间戳的几种方法 时间戳是指从某个特定的时间点(通常是1970年1月1日00:00:00 UTC)到现在的总秒数。在Python中,我们可以使用多种方法获取时间戳。本文将介绍三种常用...
    99+
    2023-09-30
    python 服务器 开发语言
  • 几种Python执行时间的计算方法
    https://blog.csdn.net/wangshuang1631/article/details/54286551 ...
    99+
    2023-01-31
    执行时间 几种 计算方法
  • 解读等值线图的Python绘制方法
    目录等值线图的Python绘制方法python等值线图绘制,计算合适的等值线间距总结等值线图的Python绘制方法 等值线图或等高线图在科学界经常用到,它是由一些封闭的曲线组成的,来...
    99+
    2023-02-01
    等值线图 Python绘制等值线图 Python等值线图
  • Python matplotlib怎么绘制各种流线图
    本篇内容介绍了“Python matplotlib怎么绘制各种流线图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!流线图概述什么是...
    99+
    2023-06-21
  • C#绘制实时曲线的方法
    本文实例为大家分享了C#绘制实时曲线的具体代码,供大家参考,具体内容如下 1.要做一个调试工具,采集传感器数据并显示。绘制曲线注意坐标反转,线条的张力即可。项目中的曲线是从右往左显示...
    99+
    2024-04-02
  • Android绘制双折线图的方法
    本文实例为大家分享了Android绘制双折线图的具体代码,供大家参考,具体内容如下 自定义View实现双折线图,可点击,点击后带标签描述,暂未实现拖动的功能,实现效果如下: 代码如...
    99+
    2024-04-02
  • android绘制曲线和折线图的方法
    本文实例为大家分享了android绘制曲线和折线图的具体代码,供大家参考,具体内容如下 (曲线)  (折线) 1.CurveView.java package com....
    99+
    2024-04-02
  • python绘制直方图的方法
    本文实例为大家分享了python绘制直方图的具体代码,供大家参考,具体内容如下 用两列数据绘制直方图 #coding=gbk import xlwings as xw impor...
    99+
    2024-04-02
  • vue+canvas绘制时间轴的方法
    本文实例为大家分享了vue canvas绘制时间轴的具体代码,供大家参考,具体内容如下 最近在研究canvas绘制时间轴,直接上代码,希望分享能给大家带来帮助,效果如下: 代码如下...
    99+
    2024-04-02
  • Python获取代码运行时间的几种方法
    Python获取代码运行时间的几种方法1、方法一:#python 的标准库手册推荐在任何情况下尽量使用time.clock().#只计算了程序运行CPU的时间,返回值是浮点数import timestart =time.clock()#中...
    99+
    2023-01-31
    几种方法 代码 时间
  • python通过Matplotlib绘制常见的几种图形(推荐)
    目录python通过Matplotlib绘制常见的几种图形一、使用matplotlib对几种常见的图形进行绘制1、柱状图 2、水平绘制柱状图 3、多个柱状图 4、叠加型柱状图 5、散...
    99+
    2024-04-02
  • Python绘制分类图的方法
    前言 遥感影像分类图一般为特定数值对应一类地物,用Python绘制时,主要在颜色的映射和对应的图例生成。 plt.matplotlib.colors.ListedColormap支持...
    99+
    2024-04-02
  • python绘制柱形图的方法
    本文实例为大家分享了python绘制柱形图的具体代码,供大家参考,具体内容如下 #柱形图 import pandas import numpy import matplotlib...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作