English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تنسيق المحاور Matplotlib

دليل مفصل حول تنسيق محاور Matplotlib

في بعض الأحيان، نقطة واحدة أو عدة نقاط تكون أكبر بكثير من كمية البيانات الكبيرة. في هذه الحالة، يجب إعداد نسبة المحور على نطاق اللوغاريتمي (log) بدلاً من النطاق العادي. هذا هو المقياس اللوغاريتمي. في Matplotlib، يمكنك تحقيق ذلك عن طريق تعيين خاصية xscale أو vscale من عنصر axes إلى log.

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

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

参考以下示例代码:

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ar.oldtoolbag.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 w3codebox
# Author by : ar.oldtoolbag.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()#