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

Formatting Axes

轴脊是连接轴刻度线的线,用于划分绘图区域的边界。轴对象的脊椎位于顶部、底部、左侧和右侧。

每个书脊都可以通过指定颜色和宽度来格式化。如果将其颜色设置为无,则可以使任何边缘不可见。

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

Axis Spines