问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Matplotlib plot绘制多条线,点型(标记)、线型,参数配置及缩写形式

创作时间:
作者:
@小白创作中心

Matplotlib plot绘制多条线,点型(标记)、线型,参数配置及缩写形式

引用
CSDN
1.
https://blog.csdn.net/bbaaa123/article/details/142074009

Matplotlib是Python中最常用的绘图库之一,其plot函数功能强大,可以绘制各种类型的线性图。本文将详细介绍如何使用plot函数绘制多条线、设置线型和线宽、配置点型(标记),以及参数配置的缩写形式。通过具体的代码示例,帮助读者掌握这些实用的绘图技巧。

plot绘制多条线

在绘制直线或曲线的时候,常用的方法就是通过足够数量的点进行连接来模拟曲线

一次plot绘制一条线

样例如下

import matplotlib.pyplot as plt
import numpy as np

figure1 = plt.figure(figsize=(6, 4))
x = np.linspace(0, 20, 100)
y = 2 * x

plt.subplot(121)
line1 = plt.plot(x, y)

plt.subplot(122)
y1 = np.sin(x)
line2 = plt.plot(x, y1)

plt.subplots_adjust(wspace=0.4)
figure1.savefig('plot1.png')

print(line1, type(line1))
plt.show()
# [<matplotlib.lines.Line2D object at 0x13fa44650>] <class 'list'>  

可以看到使用plt绘图后,会返回一个Line2D对象组成的列表

上述代码中一次plot的调用只绘制了一条线,分别为一次函数和正弦函数

一次plot绘制多条线

绘制多条线,也就是多个2D图像,只需要在plot参数上配置上每条线的坐标值就好,现在我们把上面的两个函数曲线通过一个plot绘制在一起

import matplotlib.pyplot as plt
import numpy as np

figure1 = plt.figure(figsize=(6, 4))
x = np.linspace(0, 20, 100)
y = 2 * x
y1 = np.sin(x)

plt.subplot(121)
line1, line2 = plt.plot(x, y, x, np.sin(x))

figure1.savefig('plot1.png')

print(line1, line2, sep='\n')
plt.show()
# Line2D(_child0)
# Line2D(_child1)  

可以看到一次绘制多个plot对象后,我们对返回的Line2D列表进行解包就可以得到两个Line2D对象

线型及线宽选择

在绘制线性图的时候,也就是使用plt.plot()进行图像绘制的时候,默认线型为实线,可以在plot绘图时进行绘制,线型和线宽都可以手动设置

线型的选择可以使用linestyle参数进行设置,也可以使用缩写版的ls

线宽的设置可以使用linewidth进行设置,也可以使用缩写版的lw

线型的选择

  1. '-' 或 'solid':实线
  2. '--' 或 'dashed':虚线
  3. '-.' 或 'dashdot':点划线
  4. ':' 或 'dotted':点线
  5. 'None' 或 '''':无线条

下面展示四种线及不同线宽的样式

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 10)
y = np.sin(x)
fig = plt.figure()

# 绘制不同线型
plt.plot(x, y, linestyle='-', lw=1, label='Solid Line')          # 实线
plt.plot(x, y + 0.5, linestyle='--', lw=3, label='Dashed Line')  # 虚线
plt.plot(x, y + 1, linestyle='-.', lw=5, label='Dash-dot Line')  # 点划线
plt.plot(x, y + 1.5, linestyle=':', lw=7, label='Dotted Line')   # 点线

plt.legend()
fig.savefig('plo1.png')
plt.show()  

线型及线宽的获取

我们可以通过解包plot绘制的Line2D列表获取每个Line2D对象,然后通过.get_linestyle()和.get_linewidth()获取线型和线宽

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 10)
y = np.sin(x)
fig = plt.figure()

# 绘制不同线型
![](https://wy-static.wenxiaobai.com/chat-rag-image/5783020262076743146)

line1, = plt.plot(x, y, linestyle='-', lw=1, label='Solid Line')          # 实线
line2, = plt.plot(x, y + 0.5, linestyle='--', lw=3, label='Dashed Line')  # 虚线
line3, = plt.plot(x, y + 1, linestyle='-.', lw=5, label='Dash-dot Line')  # 点划线
line4, = plt.plot(x, y + 1.5, linestyle=':', lw=7, label='Dotted Line')   # 点线

plt.legend()

print(line1.get_linestyle(), line1.get_linewidth())
print(line2.get_linestyle(), line2.get_linewidth())
print(line3.get_linestyle(), line3.get_linewidth())
print(line4.get_linestyle(), line4.get_linewidth())
# - 1.0
# -- 3.0
# -. 5.0
# : 7.0  

点型(标记设置)

点,也叫标记,配置每个点在图表中的绘制,可以设置标记的颜色(默认与线的颜色相同),样式默认为(None,也就是默认不绘制标记),边缘颜色(默认与线的颜色相同),边缘线宽,标记大小

标记样式在plot中的参数名为marker,样式的选择如下

  1. '.':表示点标记,通常是一个非常小的点。
  2. 'o':表示圆圈标记,即一个空心的圆圈。
  3. 'v':表示下三角标记,即一个朝下的三角形。
  4. '^':表示上三角标记,即一个朝上的三角形。
  5. '<':表示左三角标记,即一个朝左的三角形。
  6. '>':表示右三角标记,即一个朝右的三角形。
  7. 's':表示正方形标记,即一个小方块。
  8. 'p':表示五边形标记,类似于一个五角形。
  9. '':表示*星形标记,即一个星星形状的标记。
  10. 'h':表示六边形标记1,一个带有六个顶点的形状。
  11. 'H':表示六边形标记2,另一个略微不同的六边形形状。
  12. '+':表示加号标记,即一个加号符号。
  13. 'x':表示叉号标记,即一个叉形符号。
  14. 'D':表示大菱形标记,一个大的钻石形状。
  15. 'd':表示小菱形标记,一个小的钻石形状。
  16. '|':表示垂直线标记,即一条垂直线。
  17. '_':表示水平线标记,即一条水平线。
    18.‘’或None或'None', 即不绘制标记

边缘颜色的参数为markeredgecolor

边缘线宽的参数为markeredgewidth

标记颜色的参数为markerfacecolor

标记大小的参数为markersize

绘制样例如下

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 10)
y = np.sin(x)
fig = plt.figure()

plt.plot(x, y, ls='-', color='r', marker='o', markerfacecolor='b', markeredgecolor='y', markeredgewidth=4, markersize=15)

fig.savefig('plo1.png')
plt.show()

参数配置的缩写形式

参数配置的缩写形式由三个字符组成,分别为线的颜色的缩写字母形式,标记的样式,和线型,顺序不可变

如‘ro-’ 这里指线色为红,标记为圆圈,线型为实线

注意,如使用一个plot绘制多条线,缩写参数会根据就近原则配置最近的线,如有多条线需要进行配置,则需要多次配置参数

样例如下

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 10)
y = np.sin(x)
fig = plt.figure()

plt.plot(x, y, x, 2 * x, 'ro-')

fig.savefig('plo1.png')
plt.show()

可以注意到由于缩写参数的就近原则,第一条曲线并未获取到参数,所以需要再次配置

![](https://wy-static.wenxiaobai.com/chat-rag-image/10051664783776672721)

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 10)
y = np.sin(x)
fig = plt.figure()

plt.plot(x, y, 'b+--', x, 2 * x, 'ro-')

fig.savefig('plo1.png')
plt.show()


© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号