我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python可视化的折线图是怎样的

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python可视化的折线图是怎样的

本篇文章给大家分享的是有关Python可视化的折线图是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

摘要: 利用matplotlib绘制横轴为日期格式的折线图时,存在不少技巧。本文借助Tushare包返回的股票数据,介绍日期型折线图绘制的方法。

回顾:

Python数据处理分析(1):日期型数据处理

折线图绘制的数据源,采用Tushare包获取上市公司基本数据表,格式如下:

1import pandas as pd
2data = pd.read('get_stock_basics.csv',encoding = 'utf8')
3print(data.head())
4
5ts_code    symbol  name    list_status list_date   is_hs
6000001.SZ    1   平安银行    L   19910403    S
7000002.SZ    2   万科A L   19910129    S
8000004.SZ    4   国农科技    L   19910114    N
9000005.SZ    5   世纪星源    L   19901210    N

然后利用resampleto.period方法汇总各年度的上市公司数量数据,格式为Pandas.Series数组。

 1# 汇总各年上市公司数量
2data = data.set_index(['list_date'])
3data = data.resample('AS').count()['ts_code']
4data = data.to_period('A')
5print(data.head())
6print(data.tail())
7# 结果如下:
8list_date
91990      7
101991      4
111992     37
121993    106
131994     99
14...
15list_date
162014    124
172015    223
182016    227
192017    438
202018     78

1. Series直接绘制折线图

首先,我们可以直接利用pandas的数组Series绘制折线图:

 1import matplotlib.pyplot as plt
2plt.style.use('ggplot')  # 设置绘图风格
3fig = plt.figure(figsize = (10,6))  # 设置图框的大小
4ax1 = fig.add_subplot(1,1,1)
5data.plot() # 绘制折线图
6
7# 设置标题及横纵坐标轴标题
8colors1 = '#6D6D6D'  #设置标题颜色为灰色
9plt.title('历年中国内地上市公司数量变化',color = colors1,fontsize = 18)
10plt.xlabel('年份')
11plt.ylabel('数量(家)')
12plt.show()
Python可视化的折线图是怎样的

可以发现,图中存在两个问题:一是缺少数值标签,二是横坐标年份被自动分割了。我们希望能够添加上数值标签,然后坐标轴显示每一年的年份值。接下来,需要采用新的方法重新绘制折线图。

2. 折线图完善

 1# 创建x,y轴标签
2x = np.arange(0,len(data),1)
3    ax1.plot(x,data.values, #x、y坐标
4    color = '#C42022', #折线图颜色为红色
5    marker = 'o',markersize = 4 #标记形状、大小设置
6    )
7ax1.set_xticks(x) # 设置x轴标签为自然数序列
8ax1.set_xticklabels(data.index) # 更改x轴标签值为年份
9plt.xticks(rotation=90) # 旋转90度,不至太拥挤
10
11for x,y in zip(x,data.values):
12    plt.text(x,y + 10,'%.0f' %y,ha = 'center',color = colors1,fontsize = 10 )
13    # '%.0f' %y 设置标签格式不带小数
14# 设置标题及横纵坐标轴标题
15plt.title('历年中国内地上市公司数量变化',color = colors1,fontsize = 18)
16plt.xlabel('年份')
17plt.ylabel('数量(家)')
18# plt.savefig('stock.png',bbox_inches = 'tight',dpi = 300)
19plt.show()

完善后的折线图如下:

Python可视化的折线图是怎样的

可以看到,x轴逐年的数据都显示并且数值标签也添加上了。

3. 多元折线图

上面介绍了一元折线图的绘制,当需要绘制多元折线图时,方法也很简单,只要重复绘图函数即可。这里我们以二元折线图为例,绘制国内两家知名地产公司万科和保利地产2017年的市值变化对比折线图。

3.1. 数据来源

数据源仍然采用tushare包的pro.daily_basic()接口,该接口能够返回股票的每日股市数据,其中包括每日市值total_mv。我们需获得的两只股票分别是万科地产(000002.SZ)和保利地产(600048.SH),下面就来获取两只股票2017年的市值数据。

 1import tushare as ts
2ts.set_token('你的token')  # 官网注册后可以获得
3pro = ts.pro_api()
4def get_stock():
5    lst = []
6    ts_codes = ['000002.SZ', '600048.SH']
7    for ts_code in ts_codes:
8        data = pro.daily_basic(
9            ts_code=ts_code, start_date='20170101', end_date='20180101')
10    print(lst)
11    reutrn lst
12    # 结果如下,total_mv为当日市值(万元):
13    #万科地产数据
14        ts_code trade_date  close   …   total_mv    circ_mv
150    000002.SZ   20171229    31.06   …   3.43E+07    3.02E+07
161    000002.SZ   20171228    30.7    …   3.39E+07    2.98E+07
172    000002.SZ   20171227    30.79   …   3.40E+07    2.99E+07
183    000002.SZ   20171226    30.5    …   3.37E+07    2.96E+07
194    000002.SZ   20171225    30.37   …   3.35E+07    2.95E+07
20
21    #保利地产数据
22        ts_code trade_date  close   …   total_mv    circ_mv
230    600048.SH   20171229    14.15   …   1.68E+07    1.66E+07
241    600048.SH   20171228    13.71   …   1.63E+07    1.61E+07
252    600048.SH   20171227    13.65   …   1.62E+07    1.60E+07
263    600048.SH   20171226    13.85   …   1.64E+07    1.63E+07
274    600048.SH   20171225    13.55   …   1.61E+07    1.59E+07

下面对数据作进一步修改,从DataFrame中提取total_mv列,index设置为日期,再利用resample和pd.to_period方法按月汇总市值数据。

 1data['trade_date'] = pd.to_datetime(data['trade_date'])
2# 设置index为日期
3data = data.set_index(data['trade_date']).sort_index(ascending=True)
4# 按月汇总和显示
5data = data.resample('m')
6data = data.to_period()
7# 市值改为亿元
8market_value = data['total_mv']/10000
9
10# 二者结果分别如下,万科地产:
112017-01    2291.973270
122017-02    2286.331037
132017-03    2306.894790
142017-04    2266.337906
152017-05    2131.053098
162017-06    2457.716659
172017-07    2686.982164
182017-08    2524.462077
192017-09    2904.085487
202017-10    2976.999550
212017-11    3263.374043
222017-12    3317.107474
23# 保利地产:
242017-01    1089.008286
252017-02    1120.023350
262017-03    1145.731640
272017-04    1153.760435
282017-05    1108.230609
292017-06    1157.276044
302017-07    1244.966905
312017-08    1203.580209
322017-09    1290.706606
332017-10    1244.438756
342017-11    1336.661916
352017-12    1531.150616

3.2. 绘制二元折线图

利用上面的Series数据就可以作图了。

 1# 设置绘图风格
2plt.style.use('ggplot')
3fig = plt.figure(figsize = (10,6))
4colors1 = '#6D6D6D'  #标题颜色
5
6# data1万科,data2保利
7data1 = lst[0]
8data2 = lst[1]
9# 绘制第一条折线图
10data1.plot(
11color = '#C42022', #折线图颜色
12marker = 'o',markersize = 4, #标记形状、大小设置
13label = '万科'
14)
15# 绘制第二条折线图
16data2.plot(
17color = '#4191C0', #折线图颜色
18marker = 'o',markersize = 4, #标记形状、大小设置
19label = '保利'
20)
21# 还可以绘制更多条
22# 设置标题及横纵坐标轴标题
23plt.title('2017年万科与保利地产市值对比',color = colors1,fontsize = 18)
24plt.xlabel('月份')
25plt.ylabel('市值(亿元)')
26plt.savefig('stock1.png',bbox_inches = 'tight',dpi = 300)
27plt.legend() # 显示图例
28plt.show()

绘图结果如下:

Python可视化的折线图是怎样的

如果想添加数值标签,则可以使用下面的代码:

 1# 绘制第一条折线图
2# 创建x,y轴标签
3x = np.arange(0,len(data1),1)
4ax1.plot(x,data1.values, #x、y坐标
5color = '#C42022', #折线图颜色红色
6marker = 'o',markersize = 4, #标记形状、大小设置
7label = '万科'
8)
9ax1.set_xticks(x) # 设置x轴标签
10ax1.set_xticklabels(data1.index) # 设置x轴标签值
11# plt.xticks(rotation=90)
12for x,y in zip(x,data1.values):
13    plt.text(x,y + 10,'%.0f' %y,ha = 'center',color = colors1,fontsize = 10 )
14    # '%.0f' %y 设置标签格式不带小数
15
16# 绘制第二条折线图
17x = np.arange(0,len(data2),1)
18
19ax1.plot(x,data2.values, #x、y坐标
20color = '#4191C0', #折线图颜色蓝色
21marker = 'o',markersize = 4, #标记形状、大小设置
22label = '保利'
23)
24ax1.set_xticks(x) # 设置x轴标签
25ax1.set_xticklabels(data2.index) # 设置x轴标签值
26# plt.xticks(rotation=90)
27for x,y in zip(x,data2.values):
28    plt.text(x,y + 10,'%.0f' %y,ha = 'center',color = colors1,fontsize = 10 )
29    # '%.0f' %y 设置标签格式不带小数
30
31# 设置标题及横纵坐标轴标题
32plt.title('2017年万科与保利地产市值对比',color = colors1,fontsize = 18)
33plt.xlabel('月份')
34plt.ylabel('市值(亿元)')
35
36plt.savefig('stock1.png',bbox_inches = 'tight',dpi = 300)
37plt.legend() # 显示图例
38plt.show()

结果如下图所示:

Python可视化的折线图是怎样的

可以看到,两只股票市值从2017年初开始一直在上涨,万科的市值是保利的2倍左右。

以上就是Python可视化的折线图是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python可视化的折线图是怎样的

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python可视化的折线图是怎样的

本篇文章给大家分享的是有关Python可视化的折线图是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。摘要: 利用matplotlib绘制横轴为日期格式的折线图时,存在不少
2023-06-02

Python绘制折线图可视化神器pyecharts怎么使用

这篇“Python绘制折线图可视化神器pyecharts怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python绘
2023-07-02

Python数据可视化中的环形图是怎样的

今天给大家介绍一下Python数据可视化中的环形图是怎样的。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。1.引言环形图(圆环)在功能上与饼图相同,整个环被分成
2023-06-26

自定义视图view的折线图怎么使用

这篇文章主要讲解了“自定义视图view的折线图怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“自定义视图view的折线图怎么使用”吧!绘制折线图预览图绘制这个折线图需要都需要哪些步骤?
2023-07-05

excel里折线图的横坐标怎样设置

在Excel中,折线图的横坐标通常表示数据的分类或时间。横坐标的设置取决于数据类型和展示需求。以下是设置折线图横坐标的一些常见方法:1. 默认设置:Excel会根据数据的位置自动生成横坐标。如果数据位于工作表的列中,则Excel将使用该列的
2023-09-15

Python matplotlib之折线图的各种样式与画法总结

matplotlib是Python中的一个第三方库,主要用于开发2D图表,以渐进式、交互式的方式实现数据可视化,可以更直观的呈现数据,使数据更具说服力,下面这篇文章主要给大家介绍了关于Python matplotlib之折线图的各种样式与画法的相关资料,需要的朋友可以参考下
2022-12-22

怎么使用Python的pyecharts绘制折线图

本篇内容主要讲解“怎么使用Python的pyecharts绘制折线图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python的pyecharts绘制折线图”吧!折线图介绍折线图和柱状图
2023-07-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录