Matplotlib – 格式化坐标轴
有时,一个或几个点要比大部分数据大得多。在这种情况下,需要将轴的比例设置为对数,而不是正常的比例。这就是对数刻度。在Matplotlib中,可以通过将轴对象的xscale或vscale属性设置为 “log “来实现。
有时也需要在坐标轴数字和坐标轴标签之间显示一些额外的距离。可以将任一轴(x或y或两者)的labelpad属性设置为所需的值。
下面的例子对上述两个功能进行了演示。右边的子图有一个对数刻度,左边的子图的X轴上的标签距离更远。
import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(1, 2, figsize=(10,4))
x = np.arange(1,5)
axes[0].plot( x, np.exp(x))
axes[0].plot(x,x**2)
axes[0].set_title("Normal scale")
axes[1].plot (x, np.exp(x))
axes[1].plot(x, x**2)
axes[1].set_yscale("log")
axes[1].set_title("Logarithmic scale (y)")
axes[0].set_xlabel("x axis")
axes[0].set_ylabel("y axis")
axes[0].xaxis.labelpad = 10
axes[1].set_xlabel("x axis")
axes[1].set_ylabel("y axis")
plt.show()
轴刺是连接轴刻度线的线条,划分了绘图区域的边界。轴对象在顶部、底部、左侧和右侧都有轴刺。
每条轴线都可以通过指定颜色和宽度进行格式化。如果任何边缘的颜色被设置为无,则可以使其不可见。
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.spines['bottom'].set_color('blue')
ax.spines['left'].set_color('red')
ax.spines['left'].set_linewidth(2)
ax.spines['right'].set_color(None)
ax.spines['top'].set_color(None)
ax.plot([1,2,3,4,5])
plt.show()