Matplotlib 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()
# 绘制不同线型
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()

 

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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值