📜  Python | Matplotlib.pyplot

📅  最后修改于: 2020-04-16 06:09:25             🧑  作者: Mango

Matplotlib是Python中令人惊叹的可视化库,用于二维阵列图。Matplotlib是一个基于NumPy数组的多平台数据可视化库,旨在与更广泛的SciPy堆栈配合使用。它由John Hunter在2002年推出。
可视化的最大好处之一是,它使我们能够以易于消化的视觉效果直观地访问大量数据。Matplotlib由几个图组成,例如线条,条形图,散点图,直方图等。

Ticks用于在坐标轴上显示特定点的值。它可以是数字或字符串。每当我们绘制图形时,轴都会调整并采用默认刻度。Matplotlib的默认刻度通常在常见情况下就足够了,但绝不是每个图的最佳选择。在这里,我们将看到如何根据需要自定义这些刻度。
参数

参数 采用
axis (轴) x,y,或者两个 告诉要操作的轴
reset True, False 如果为True,将所有参数设置为默认值
direction in, out, inout 将刻度线放在内部或外部,或两者都放在
length Float 设置刻度线的长度
width Float 设置刻度线的宽度
rotation Float 绕轴旋转刻度线
colors Color 更改刻度颜色
pad Float 刻度和标签之间的点距

范例1:预设图

# 导入所需的模块
import matplotlib.pyplot as plt
# x和y轴的值
x = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
y = [1, 4, 3, 2, 7, 6, 9, 8, 10, 5]
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.show()

输出:

示例2:玩转ticks
假设我们不想显示刻度线的值,或者不想倾斜刻度线,或者不想进行任何其他自定义。我们可以这样做。

# 导入库
import random
import matplotlib.pyplot as plt
fig = plt.figure()
# 函数以获取图的随机值
def get_graphs():
    xs =[]
    ys =[]
    for i in range(10):
        xs.append(i)
        ys.append(random.randrange(10))
    return xs, ys
# 定义子图
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(223)
ax4 = fig.add_subplot(224)
# 在轴上隐藏标记
x, y = get_graphs()
ax1.plot(x, y)
ax1.tick_params(axis ='both', which ='both', length = 0)
# 也可以通过设置(长度=任何浮点值)来更改标记的长度
# 隐藏刻度和标记
x, y = get_graphs()
ax2.plot(x, y)
ax2.axes.get_xaxis().set_visible(False)
ax2.axes.get_yaxis().set_visible(False)
# 隐藏值并显示标记
x, y = get_graphs()
ax3.plot(x, y)
ax3.yaxis.set_major_formatter(plt.NullFormatter())
ax3.xaxis.set_major_formatter(plt.NullFormatter())
# 倾斜刻度线(通常在刻度线密集时需要)
x, y = get_graphs()
ax4.plot(x, y)
ax4.tick_params(axis ='x', rotation = 45)
ax4.tick_params(axis ='y', rotation =-45)
plt.show()

输出:



示例3:更改刻度线的值。
在第一个示例中,x轴和y轴分别除以10和2的值。让我们将其设为5和1。

# 导入库
import matplotlib.pyplot as plt
import numpy as np
# x和y轴的值
x = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
y = [1, 4, 3, 2, 7, 6, 9, 8, 10, 5]
plt.plot(x, y, 'b')
plt.xlabel('x')
plt.ylabel('y')
# 0是初始值,5,1是最终值(不取最后一个值),5是两个连续刻度之间的值差
plt.xticks(np.arange(0, 51, 5))
plt.yticks(np.arange(0, 11, 1))
plt.show()

输出:



与第一个示例的主要区别是:
plt.xticks(np.arange(0,51,5 ))plt.yticks(np.arange(0,11,1))更改np.arange中的值, 以此更改刻度线的范围。