Matplotlib 格式化轴

Matplotlib格式化轴详细操作教程

有时候一个或几个点比大量数据大得多。在这种情况下,轴的比例需要设置为对数(log)而不是正常比例。这是对数标度。在Matplotlib中,可以通过将axes对象的xscale或vscale属性设置为log。

有时还需要在轴编号和轴标签之间显示一些额外的距离。任一轴(x或y或两者)的labelpad属性都可以设置为所需的值。

在以下示例的帮助下演示了上述两个功能。右边的子图具有对数刻度,左边的一个子图的x轴具有更远距离的标签。

参考以下示例代码:

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.niaoge.com
# Date : 2020-08-08
#! /usr/bin/env python
 #coding=utf-8
 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()

执行上面示例代码,得到以下结果 -

执行代码结果

轴尖端是连接轴刻度线的线,划分绘图区域的边界。轴对象的尖端位于顶部,底部,左侧和右侧。每个尖端可以通过指定颜色和宽度进行格式化。如果任何边缘的颜色设置为无,则可以使其不可见。

参考示例代码:

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.niaoge.com
# Date : 2020-08-08
#! /usr/bin/env python
 #coding=utf-8
 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()#