当前位置:   article > 正文

Python 用 matplotlib 中的 plot 画图,折线图_series的plot方法绘图如何把一个表的数据使用折线图表示

series的plot方法绘图如何把一个表的数据使用折线图表示

1. 加载宏包

使用 matplotlib 包画图时,我们一般加载里面的 pyplot,并命名为 plt,然后使用 plot 函数画图。

# 导入 matplotlib 中的 plot, 并命名为常用名 plt
import matplotlib.pyplot as plt
  • 1
  • 2

例如,下面的代码画出正弦函数 y = s i n ( x ) y=sin(x) y=sin(x) 的图形。

import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = np.arange(0, 10, 0.1) # 横坐标数据为从0到10之间,步长为0.1的等差数组
y = np.sin(x) # 纵坐标数据为 x 对应的 sin(x) 值

# 生成图形
plt.plot(x, y)

# 显示图形
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

图形显示:
在这里插入图片描述
利用plot函数,我们可以对图形进行更多精细的设置,官方的详细文档可以参看:https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.plot.html。

2. plot 函数的语法

Plot 函数的基本语法是:

plot([x], y, [fmt], **kwargs)
含义
[x]可选参数,横坐标轴数据
y纵坐标轴数据
[fmt]可选参数,字符串,定义图形的基本样式:颜色,点形,线形
**Kwargs不定长的关键字参数,用字典形式设置图形的其他属性

[fmt] 的常用代码(包括颜色代码、点形代码、线形代码),由下面的表所示。
颜色:

代码颜色
‘b’蓝色
‘g’绿色
‘r’红色
‘y’黄色
‘k’黑色
‘w’白色

点形:

代码点形
‘.’圆点形
‘o’实心圆
‘*’星号
‘+’加号
‘x’叉号

线形:

代码线形
‘-’实线
‘–’虚线
‘-.’折线
‘:’点线

**Kwargs 的常用设置包括线条的粗细 linewidth,图像标签 label 等。下面一些 plot 函数的代码展示了 [x],[fmt],**Kwargs 的一些可选用法:

>>> plot(x, y)        # 根据横坐标数据 x 与纵坐标数据 y 画图,采用默认的颜色、点形与线性
>>> plot(y)           # 据纵坐标数据 y 画图,横坐标数据默认为从 0 到 N-1,步长为 1 的等差数组
>>> plot(x, y, 'bo')  # 颜色为蓝色('b')、点形为圆('o')
>>> plot(y, 'g-.')     # 颜色为绿色('g'),线型为折线('-.')
>>> plt.plot(x, y, 'yo:', label='y=sin(x)', linewidth=2) # 颜色为黄色('y'),点形为圆形('o'),线形为虚线(':'),lable 内容为 'y=sin(x)', 线条宽度为 2
  • 1
  • 2
  • 3
  • 4
  • 5

通过设置线型形状,就可以画折线图了

如果我们想自定义坐标轴的标题,坐标轴的刻度,坐标轴刻度的范围,设置图形标题,添加图例时,可以通过设置 pyplot 函数中的 xlable(横坐标轴标题), ylabel(纵坐标轴标题), xticks(横坐标轴刻度),yticks(纵坐标轴刻度),title(图形标题), grid(显示网格),legend(显示图例)等属性来实现。经过自定义设置,对上图的代码进行一下修改:

import matplotlib.pyplot as plt
import numpy as np

# 这两行代码使得 pyplot 画出的图形中可以显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 生成数据
x = np.arange(0, 10, 0.5)
y = np.sin(x)

# 生成图形
plt.plot(x, y, 'go:', label='y=sin(x)', linewidth=2) # 颜色绿色,点形圆形,线性虚线,设置图例显示内容,线条宽度为2

plt.ylabel('y') # 横坐标轴的标题
plt.xlabel('x') # 纵坐标轴的标题
plt.xticks(np.arange(0, 11, 1)) # 设置横坐标轴的刻度为 0 到 10 的数组
plt.ylim([-2, 2]) # 设置纵坐标轴范围为 -2 到 2
plt.legend() # 显示图例, 图例中内容由 label 定义
plt.grid() # 显示网格
plt.title('我的第一个 Python 图形') # 图形的标题

# 显示图形
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

生成图形:

在这里插入图片描述

3. 一张图画好几条线

下表是我国近10年的 GDP 增长率,以及三大产业在近10年的增长率。

时间GDP增长率第一产业增长率第二产业增长率第三产业增长率
2009年9.4410.39.6
2010年10.64.312.79.7
2011年9.64.210.79.5
2012年7.94.58.48
2013年7.83.888.3
2014年7.34.17.47.8
2015年6.93.96.28.2
2016年6.73.36.37.7
2017年6.845.97.9
2018年6.63.55.87.6

在画图时,横坐标轴数据为年份,纵坐标轴数据分别为 GDP 增长率,第一产业增长率,第二产业增长率,第三产业增长率。为了将四个纵坐标轴数据显示在一个图形上,可以用四个 plot 函数进行划线。Python 画图的代码为:

import matplotlib.pyplot as plt

# 这两行代码解决 plt 中文显示的问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 输入纵坐标轴数据与横坐标轴数据
gdp_rate = [9.4, 10.6, 9.6, 7.9, 7.8, 7.3, 6.9, 6.7, 6.8, 6.6]
first_industry_rate = [4.0, 4.3, 4.2, 4.50, 3.8, 4.1, 3.9, 3.3, 4.0, 3.5]
second_industry_rate = [10.3, 12.7, 10.7, 8.4, 8.0, 7.4, 6.2, 6.3, 5.9, 5.8]
third_industry_rate = [9.6, 9.7, 9.5, 8.0, 8.3, 7.8, 8.2, 7.7, 7.9, 7.6]
years = [2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018]

# 4 个 plot 函数画出 4 条线,线形为折线,每条线对应各自的标签 label
plt.plot(years, gdp_rate, '.-', label='GDP增长率')
plt.plot(years, first_industry_rate, '.-', label='第一产业增长率')
plt.plot(years, second_industry_rate, '.-', label='第二产业增长率')
plt.plot(years, third_industry_rate, '.-', label='第三产业增长率')

plt.xticks(years)  # 设置横坐标刻度为给定的年份
plt.xlabel('年份') # 设置横坐标轴标题
plt.legend() # 显示图例,即每条线对应 label 中的内容
plt.show() # 显示图形
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

图形显示效果:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/166910
推荐阅读
相关标签
  

闽ICP备14008679号