4.设置线型风格
4.1.设置线型风格
5.区域着色 (Shading Regions)
6.设置Spines
4.设置线型风格
4.1.设置线型风格
可以使用绘图函数的linestyle或ls参数来影响绘图的线型风格。
可以使用linewidth来设置一条线的宽度。
import matplotlib.pyplot as plt
import numpy as np
X = np.linspace(0, 2 * np.pi, 50, endpoint=True)
F1 = 3 * np.sin(X)
F2 = np.sin(2*X)
F3 = 0.3 * np.sin(X)
F4 = np.cos(X)
plt.plot(X, F1, color="blue", linewidth=2.5, linestyle="-")
plt.plot(X, F2, color="red", linewidth=1.5, linestyle="--")
# plt.plot(X, F3, color="green", linewidth=2, linestyle=":")
# (0,(5,1))即:densely dashed
plt.plot(X, F3, color="green", linewidth=2, linestyle=(0,(5,1)))
plt.plot(X, F4, color="grey", linewidth=2, linestyle="-.")
plt.show()
5.区域着色 (Shading Regions)
可以对两条曲线之间的区域进行着色。 在以下示例中,我们填充X轴和sin(2*X) 图之间的区域:
import numpy as np
import matplotlib.pyplot as plt
n = 256
X = np.linspace(-np.pi,np.pi,n,endpoint=True)
Y = np.sin(2*X)
plt.plot(X, Y, color='blue', alpha=1.00)
# plt.fill_between(X, 0.1, 0.75, color='blue', alpha=.1)
plt.fill_between(X, 0.1, Y, color='blue', alpha=.1)
plt.show()
fill_between的一般语法:
fill_between(x, y1, y2=0, where=None, interpolate=False, **kwargs)
fill_between的参数:
x x数据的N长度数组
y1 y数据的N长度数组(或标量)
y2 y数据的N长度数组(或标量)
where 如果是None,则默认在所有位置之间填充。 如果不是None,则它是一个N长度的numpy布尔数组,并且填充只会在where == True的区域上发生。
interpolate 如果为True,则在两条线之间进行插值以找到精确的交点。否则,填充区域的起点和终点将仅出现在x数组中的显式值上。
kwargs传递给PolyCollection
import numpy as np
import matplotlib.pyplot as plt
n = 256
X = np.linspace(-np.pi,np.pi,n,endpoint=True)
Y = np.sin(2*X)
plt.plot (X, Y, color='blue', alpha=1.00)
plt.fill_between(X, Y, 1, color='blue', alpha=.1)
plt.show()
6.设置Spines
matplotlib中的连接轴刻度标记并指示数据区域边界的线。
(Spines in matplotlib are the lines connecting the axis tick marks and noting the boundaries of the data area.)
我们将在下面展示spines可以放置在任意位置。
我们用到了gca函数,它返回figure上个当前的axes实例。
Spines就是图的上面和右边的边线。
import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(-2 * np.pi, 2 * np.pi, 70, endpoint=True)
F1 = np.sin(2* X)
F2 = (2*X**5 + 4*X**4 - 4.8*X**3 + 1.2*X**2 + X + 1)*np.exp(-X**2)
# get the current axes, creating them if necessary:
ax = plt.gca()
# making the top and right spine invisible:
ax.spines['top'].set_color('red')
ax.spines['right'].set_color('green')
# moving bottom spine up to y=0 position:
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',-0.5))
# moving left spine to the right to position x == 0:
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',-2.1))
plt.plot(X, F1)
plt.plot(X, F2)
plt.show()