1、Matplotlib 网格
axes对象的grid()函数将图中网格的可见性设置为on或off。还可以显示网格的主要/次要(或两者)刻度。另外,可以在grid()函数中设置color,linestyle和linewidth属性。
参考以下示例代码
import matplotlib.pyplot as plt
import numpy as np
import math
# 显示中文设置...
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
fig, axes = plt.subplots(1,3, figsize = (12,4))
x = np.arange(1,11)
axes[0].plot(x, x**3, 'g',lw=2)
axes[0].grid(True)
axes[0].set_title('默认网格')
axes[1].plot(x, np.exp(x), 'r')
axes[1].grid(color='b', ls = '-.', lw = 0.25)
axes[1].set_title('自定义网格')
axes[2].plot(x,x)
axes[2].set_title('无网格')
fig.tight_layout()
plt.show()
执行上面示例代码,得到以下结果
2、Matplotlib 格式化轴
Matplotlib格式化轴详细操作教程
有时候一个或几个点比大量数据大得多。在这种情况下,轴的比例需要设置为对数(log)而不是正常比例。这是对数标度。在Matplotlib中,可以通过将axes对象的xscale或vscale属性设置为log。
有时还需要在轴编号和轴标签之间显示一些额外的距离。任一轴(x或y或两者)的labelpad属性都可以设置为所需的值。
在以下示例的帮助下演示了上述两个功能。右边的子图具有对数刻度,左边的一个子图的x轴具有更远距离的标签。
参考以下示例代码:
import matplotlib.pyplot as plt
import numpy as np
import math
# 显示中文设置...
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
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("正常比例")
axes[1].plot (x, np.exp(x))
axes[1].plot(x, x**2)
axes[1].set_yscale("log")
axes[1].set_title("对数刻度(y)")
axes[0].set_xlabel("x 轴")
axes[0].set_ylabel("y 轴")
axes[0].xaxis.labelpad = 10
axes[1].set_xlabel("x 轴")
axes[1].set_ylabel("y 轴")
plt.show()
执行上面示例代码,得到以下结果
在这里插入图片描述
轴尖端是连接轴刻度线的线,划分绘图区域的边界。轴对象的尖端位于顶部,底部,左侧和右侧。每个尖端可以通过指定颜色和宽度进行格式化。如果任何边缘的颜色设置为无,则可以使其不可见。
参考示例代码:
import matplotlib.pyplot as plt
import numpy as np
import math
# 显示中文设置...
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
fig = plt.figure()
ax=plt.subplot(111)
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()
运行结果
3、Matplotlib 设置限制
Matplotlib自动到达要沿着图的x,y(以及3D图的情况下为z轴)轴显示的变量的最小值和最大值。但是,可以使用set_xlim()和set_ylim()函数显式设置限制。
在下图中,显示了x和y轴的自动缩放限制
import matplotlib.pyplot as plt
import numpy as np
import math
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
ax=plt.subplot(111)
x = np.arange(1,10)
y = np.exp(x)
ax.plot(x, y)
#ax.set_ylim(0,10000)
ax.set_title('指数值')
plt.show()
执行上面示例代码,得到以下结果
现在将x轴上的限制格式化为(0到10)和y轴(0到10000)
import matplotlib.pyplot as plt
import numpy as np
import math
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
ax=plt.subplot(111)
x = np.arange(1,10)
y = np.exp(x)
ax.plot(x, y)
ax.set_xlim(0,10)
ax.set_ylim(0,10000)
ax.set_title('exp')
plt.show()
执行上面示例代码,得到以下结果