Python中matplotlib绘制折线图方法总结

Posted 我这一次

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中matplotlib绘制折线图方法总结相关的知识,希望对你有一定的参考价值。

Python中matplotlib绘制折线图方法总结(看这一篇blog就够了)

    本文主要记录如何用Python中的自带库matplotlib绘制折线图。

目录

1.导入库

    直接导入matplotlib库。

import matplotlib.pyplot as plt

2.数据准备

    用list分别准备横坐标和纵坐标的数据。

X1 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y1 = [971,1344,1953,3064,4766,15522,4389,2615,1696,1210,798]
X2 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y2 = [554,861,1238,1979,3206,10663,2916,1639,1047,704,489]
X3 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y3 = [363,547,801,1254,2205,7535,1984,1115,677,464,340]
X4 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y4 = [293,478,681,1070,1819,6563,1750,953,583,410,287]

3.图像绘制

    直接绘制折线图。

plt.figure()

# X1的分布
plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")

# X2的分布
plt.plot(X2, Y2,label="X2",  color="#3399FF", marker='o', linestyle="-")

# X3的分布
plt.plot(X3, Y3, label="X3",  color="#F9A602", marker='s', linestyle="-")

# X4的分布
plt.plot(X4, Y4, label="X4",  color="#13C4A3", marker='d', linestyle="-")
# plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1))   # 将横坐标的值全部显示出来
X_labels = ['-5','-4','-3','-2','-1','0','1','2','3','4','5']
plt.xticks(X1,X_labels,rotation=0)
plt.legend()
plt.title("Lake.bmp")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

    上述结果亲测有效。

4.完整代码(直接复制可运行)

import matplotlib.pyplot as plt
X1 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y1 = [971,1344,1953,3064,4766,15522,4389,2615,1696,1210,798]
X2 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y2 = [554,861,1238,1979,3206,10663,2916,1639,1047,704,489]
X3 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y3 = [363,547,801,1254,2205,7535,1984,1115,677,464,340]
X4 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y4 = [293,478,681,1070,1819,6563,1750,953,583,410,287]

plt.figure()

# X1的分布
plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")

# X2的分布
plt.plot(X2, Y2,label="X2",  color="#3399FF", marker='o', linestyle="-")

# X3的分布
plt.plot(X3, Y3, label="X3",  color="#F9A602", marker='s', linestyle="-")

# X4的分布
plt.plot(X4, Y4, label="X4",  color="#13C4A3", marker='d', linestyle="-")
# plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1))   # 将横坐标的值全部显示出来
X_labels = ['-5','-4','-3','-2','-1','0','1','2','3','4','5']
plt.xticks(X1,X_labels,rotation=0)
plt.legend()
plt.title("Lake.bmp")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

    绘制效果如下图所示:

5.如何设置线型、线颜色、线上圆点标志、X轴labels

5.1 如何设置线型

    线型设置主要通过语句:plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")中的参数linestyle=进行设置,该参数值与其含义类型对照如下:

5.2 如何设置线颜色

    线颜色设置主要通过语句:plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")中的参数color=进行设置,该参数值与其含义类型对照如下:

    此外,可以通过颜色的RGB值进行颜色的设置,例如语句:plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")就是通过设置颜色的RGB值为:#FF3B1D,记录几种常用的颜色的RGB值,如下所示:

序号RGB值颜色效果
1#FF3B1D红色
2#3399FF蓝色
3#F9A602黄色
4#13C4A3绿色
5#FF652D橙色
6#D09E88土色
7#CC7112深棕色
8#F2BDD0粉红色

更多鲜亮的颜色请参见:鲜亮色彩RGB值网站链接

5.3 如何设置线上圆点标志

    线型设置主要通过语句:plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")中的参数marker=进行设置,如果不需要对数据点用圆点标记出来,则不需要设置该参数,将其参数设置直接删掉即可,该参数值与其含义类型对照如下:

5.4如何设置X轴刻度labels标签

    当不人为设置X轴的刻度时,绘制的图像X轴会将某些数值进行跳过,比如X轴的范围为[-5,5]时,只显示-4、-2、0、2、4这几个点,而中间的值直接省略了,如果想要让这些值显示出来,那么有已下3种方案:
    (1)直接将X的刻度值转换成字符串,也就是说直接将X1、X2、X3、X4集合中的每一个元素直接转换成字符串类型即可。在x1的赋值语句后面加上下面这行代码:

X1 = [str(i) for i in X1]    #为了让每个值不被省略,把list中所有的元素都转化成str格式
X2 = [str(i) for i in X2]    #为了让每个值不被省略,把list中所有的元素都转化成str格式
X3 = [str(i) for i in X3]    #为了让每个值不被省略,把list中所有的元素都转化成str格式
X4 = [str(i) for i in X4]    #为了让每个值不被省略,把list中所有的元素都转化成str格式

    完整的代码如下:

import matplotlib.pyplot as plt
X1 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y1 = [971,1344,1953,3064,4766,15522,4389,2615,1696,1210,798]
X2 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y2 = [554,861,1238,1979,3206,10663,2916,1639,1047,704,489]
X3 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y3 = [363,547,801,1254,2205,7535,1984,1115,677,464,340]
X4 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y4 = [293,478,681,1070,1819,6563,1750,953,583,410,287]

X1 = [str(i) for i in X1]    #为了让每个值不被省略,把list中所有的元素都转化成str格式
X2 = [str(i) for i in X2]    #为了让每个值不被省略,把list中所有的元素都转化成str格式
X3 = [str(i) for i in X3]    #为了让每个值不被省略,把list中所有的元素都转化成str格式
X4 = [str(i) for i in X4]    #为了让每个值不被省略,把list中所有的元素都转化成str格式

plt.figure()

# X1的分布
plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")

# X2的分布
plt.plot(X2, Y2,label="X2",  color="#3399FF", marker='o', linestyle="-")

# X3的分布
plt.plot(X3, Y3, label="X3",  color="#F9A602", marker='s', linestyle="-")

# X4的分布
plt.plot(X4, Y4, label="X4",  color="#13C4A3", marker='d', linestyle="-")
# plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1))   # 将横坐标的值全部显示出来
# X_labels = ['-5','-4','-3','-2','-1','0','1','2','3','4','5']
# plt.xticks(X1,X_labels,rotation=0)
plt.legend()
plt.title("Lake.bmp")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

    (2)直接用代码设置X轴数据的显示间隔,其中MultipleLocator(1)表示X轴显示数据之间的间隔为1。

import matplotlib.ticker as ticker
plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1))   # 将横坐标的值全部显示出来

    完整的代码如下:

import matplotlib.ticker as ticker
import matplotlib.pyplot as plt
X1 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y1 = [971,1344,1953,3064,4766,15522,4389,2615,1696,1210,798]
X2 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y2 = [554,861,1238,1979,3206,10663,2916,1639,1047,704,489]
X3 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y3 = [363,547,801,1254,2205,7535,1984,1115,677,464,340]
X4 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y4 = [293,478,681,1070,1819,6563,1750,953,583,410,287]

plt.figure()

# X1的分布
plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")

# X2的分布
plt.plot(X2, Y2,label="X2",  color="#3399FF", marker='o', linestyle="-")

# X3的分布
plt.plot(X3, Y3, label="X3",  color="#F9A602", marker='s', linestyle="-")

# X4的分布
plt.plot(X4, Y4, label="X4",  color="#13C4A3", marker='d', linestyle="-")
plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1))   # 将横坐标的值全部显示出来,X轴数据显示间隔为1
plt.legend()
plt.title("Lake.bmp")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

    (3)通过直接重新为X轴设置标签列表X_labels,实现将X轴的显示进行修改,不仅可以将其改为数值的字符串,也可以改成其他的字符串形式。rotation=0表示将X轴标签的显示旋转0度,旋转是为了防止有些X轴标签过长,显示会发生重叠,因此将其进行旋转,从而腾出更多的显示空间。

import matplotlib.ticker as ticker
X_labels = ['-5','-4','-3','-2','-1','0','1','2','3','4','5']
plt
	 
	
本文和大家分享的主要是python开发中matplotlib 绘制折线图相关内容,一起来看看吧,希望对大家学习和使用这部分内容有所帮助。
matplotlib
1、安装matplotlib
① linux系统安装
安装matplotlib模块
$ sudo apt-get install python3-matplotlib# 如果是python2.7 执行如下命令
$ sudo apt-get install python-matplotlib# 如果你安装较新的Python,安装模块一乐的一些库
$ sudo apt-get install python3.5-dev python3.5-tk tk-dev
$ sudo apt-get install libfreetype6-dev g++# 再使用pip来安装模块
$ pip install --user matplotlib
② OS系统中安装
安装matplotlib模块
$ pip install --user matplotlib
③ windows系统中安装
安装matplotlib模块
$pip3 install matplotlib
进入终端执行import matplotlib 不报错表示执行成功
2、绘制简单的折线图
① 创建mpl_squares.py文件:
import matplotlib.pyplot as plt     # 导入模块
squares = [1,4,9,16,25]         # 指定列表Y坐标为列表中的值,X坐标为列表下标
plt.plot(squares)           # 传入列表
plt.show()                  # 输出图像
绘图:
 
    ② 修改标签文字和线条粗细:
import matplotlib.pyplot as plt     # 导入模块
squares = [1,4,9,16,25]         # 指定列表Y坐标为列表中的值,X坐标为列表下标
plt.plot(squares,linewidth=5)           # linewidth决定绘制线条的粗细
plt.title(’Square Numbers’,fontsize=24)     # 标题
plt.xlabel(’Vaule’,fontsize=14)
plt.ylabel(’Square of Vaule’,fontsize=14)
plt.tick_params(axis=’both’,labelsize=14)      # 刻度加粗
plt.show()                  # 输出图像
绘图:
 
   ③ 校正图形(设定X坐标):
import matplotlib.pyplot as plt     # 导入模块
squares = [1,4,9,16,25]         # 指定列表Y坐标为列表中的值
input_values = [1,2,3,4,5]
plt.plot(input_values,squares,linewidth=5)           # linewidth决定绘制线条的粗细
plt.title(’Square Numbers’,fontsize=24)     # 标题
plt.xlabel(’Vaule’,fontsize=14)
plt.ylabel(’Square of Vaule’,fontsize=14)
plt.tick_params(axis=’both’,labelsize=14)      # 刻度加粗
plt.show()                  # 输出图像
绘图:
 
3、绘制散点图
① 创建scatter_sqares.py:
import matplotlib.pyplot as plt
plt.scatter(2,4,s=200)      #X坐标2Y坐标4 S=200 点大小
plt.title(’Square Numbers’,fontsize=24)     # 标题
plt.xlabel(’Vaule’,fontsize=14)
plt.ylabel(’Square of Vaule’,fontsize=14)
plt.tick_params(axis=’both’,labelsize=14)      # 刻度加粗
plt.show()                  # 输出图像
绘图:
 
   ② 绘制一系列点:
import matplotlib.pyplot as plt
x_values = [1,2,3,4,5]      # 指定X
y_values = [1,4,9,16,25]        # 指定Y
plt.scatter(x_values,y_values,s=100)
--snip---
plt.show()                  # 输出图像
绘图
 
来源:博客园

以上是关于Python中matplotlib绘制折线图方法总结的主要内容,如果未能解决你的问题,请参考以下文章

Python中使用matplotlib 如何绘制折线图?

python数据分析-matplotlib折线图知识总结01

Python开发模块:matplotlib 绘制折线图

Python使用matplotlib模块绘制多条折线图散点图

一个Python函数解决各样式折线图绘制——Matplotlib库示例

一个Python函数解决各样式折线图绘制——Matplotlib库示例