3.4. matplotlib 其他画图参数#
Show code cell content
import matplotlib.pyplot as plt
import numpy as np
为了画图更美观、更满足我们需求,还有很多参数可以设置,包括线条式样、颜色、图例等。
线条式样#
可以用 linewidth
设置线宽,linestyle
设置线形,常用线形有:
-
:一个减号,实线–-
:两个减号,虚线-.
:点划线:
:点线
例如:生成两组随机数,对这两组随机数,我们在同一个坐标轴上画出两条线图,x=0,1,…99 序数,y 为对应数据的累积值,颜色 color
参数分别为蓝色和橙色,线宽 linewidth
参数分别为 3 和 2,线形 linestyle
参数为虚线和点线。
Note
l, = ax.plot()
用法是为了接收 ax.plot()
返回的对象,因为 ax.plot()
返回了多个对象。当绘制折线图时,ax.plot()
返回一个包含绘制的折线对象的列表。通过使用 l, = ax.plot()
,将列表中的对象解包到变量 l 中,后续则可以修改这些对象的属性,例如本处修改线条样式。
data1, data2 = np.random.randn(2,100)
fig, ax = plt.subplots(figsize=(5, 2.7))
x = np.arange(len(data1))
ax.plot(x, np.cumsum(data1), color='blue', linewidth=3, linestyle='--')
l, = ax.plot(x, np.cumsum(data2), color='orange', linewidth=2)
l.set_linestyle(':')
颜色#
除了上面的例子设置的线条颜色,颜色还有更精准的设置,有些图形元素可以接受多种颜色,例如散点图中,标记的边缘颜色可以不同于内部颜色。
案例:颜色#
例:对随机生成的两组数据 data1 和 data2,分别作为 x 轴坐标和 y 轴坐标,画散点图,点内部渲染为蓝色,边缘为黑色。
Note
在 Matplotlib 中,”C0” 和 “k” 是用于表示颜色的字符串。 “C0” 表示默认颜色循环中的第一个颜色。Matplotlib 通常使用颜色循环来为不同的数据系列分配不同的颜色,以便它们在图中更容易区分。在这里,”C0” 表示颜色循环中的第一个颜色,通常是蓝色。”k” 是使用单个字符来表示颜色,”k” 代表黑色,常见的还有 b – 蓝色, c – 青色,g – 绿色,m – 紫红色,r – 红色,w – 白色,y – 黄色。更多的颜色可以自行搜索。
fig, ax = plt.subplots(figsize=(5, 2.7))
ax.scatter(data1, data2, facecolor='C0', edgecolor='k')
<matplotlib.collections.PathCollection at 0x1267600d0>
标记点形状#
通常我们作图时,尤其是二元坐标图,是对 (x,y)
形式的点画图,点的样式可以用 marker
参数设置,常用标志点形状有:
o
:圆形*
:星型+
:+ 号标记x
:x 号标记
案例:标记#
例:将上例中的散点图修改为星型标记。
fig, ax = plt.subplots(figsize=(5, 2.7))
ax.scatter(data1, data2, facecolor='C0', edgecolor='k',marker='*')
<matplotlib.collections.PathCollection at 0x12684b510>
图例 legend
#
.legend()
用来给图像增加图例,图例是对图像上各种符号和颜色所代表内容和指标的说明,以便于更好地理解图。
当在坐标轴 ax
上画图时,传入不同的 label
参数,legend
函数则会对不同的 label
作出图例。
案例:图例#
例:对四个随机数据集 data1,data2,data3,data4 画出点线图,默认每一组颜色不相同,用图例对颜色和数据对应作出说明。
data1, data2, data3, data4 = np.random.randn(4, 100)
fig, ax = plt.subplots(figsize=(5, 2.7))
ax.plot(data1, label='data1')
ax.plot(data2, label='data2')
ax.plot(data3, label='data3')
ax.plot(data4, label='data4')
ax.legend()
<matplotlib.legend.Legend at 0x126784910>
由于是随机生成的点,因此该点线图是杂乱的波动。
案例:设置图例位置#
画图时,我们经常需要调整图例位置:legend()
的参数 loc
可用于设置到不同的位置,常见参数设置有 “upper right”, “upper left”, “lower left”, “lower right”, “right”, “center left”, “best” 等。
fig, ax = plt.subplots(figsize=(5, 2.7))
ax.plot(data1, label='data1')
ax.plot(data2, label='data2')
ax.plot(data3, label='data3')
ax.plot(data4, label='data4')
ax.legend(loc='upper right')
<matplotlib.legend.Legend at 0x1268fc310>