Matplotlib pyplot Axes Formatter对象的使用

Matplotlib pyplot Axes Formatter对象的使用

Matplotlib是Python中最常用的数据可视化库之一。它是一个非常强大的库,可以创建各种类型的图表,包括线图、散点图、柱状图、饼图、等高线图、3D图等等。

pyplot是Matplotlib中最常用的模块之一,它提供了一个类似于Matlab的界面,使得用户可以方便地绘制各种类型的图表。

在Matplotlib中,所有的绘图都是在虚拟的“图形(Figure)”对象中完成的。每个图形对象可以包含一个或多个“坐标系(Axes)”对象。坐标系对象则是真正绘制图形的对象。

阅读更多:Matplotlib 教程

pyplot模块的使用

在使用Matplotlib时,我们通常会使用pyplot模块。该模块提供了一系列的函数,可以帮助我们快速创建各种类型的图表。

绘制线图

在Matplotlib中,绘制线图的函数是plot。下面是一个简单的例子,用来绘制一个正弦曲线。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-np.pi, np.pi, 100)
y = np.sin(x)

plt.plot(x, y)
plt.show()

在这个例子中,我们使用了NumPy库中的linspace函数,生成了一个包含100个点的x轴数据。然后我们使用np.sin函数计算了每个点对应的y值。最后,我们使用plot函数绘制了这个线图,并使用show函数将其显示出来。

绘制散点图

Matplotlib中的散点图绘制函数是scatter。下面是一个例子,用来绘制服从正态分布的随机散点图。

import matplotlib.pyplot as plt
import numpy as np

x = np.random.normal(size=100)
y = np.random.normal(size=100)

plt.scatter(x, y)
plt.show()

在这个例子中,我们使用了NumPy库中的random.normal函数,生成了两个包含100个元素的数组,分别作为x轴和y轴的数据。然后我们使用scatter函数绘制了这个散点图,并使用show函数将其显示出来。

绘制柱状图

Matplotlib中的柱状图绘制函数是bar。下面是一个例子,用来绘制三个城市的销售额数据。

import matplotlib.pyplot as plt
import numpy as np

x = ["Beijing", "Shanghai", "Guangzhou"]
y = [100, 120, 80]

plt.bar(x, y)
plt.show()

在这个例子中,我们直接手动定义了三个城市的名称和销售额数据。然后我们使用bar函数绘制了这个柱状图,并使用show函数将其显示出来。

绘制饼图

Matplotlib中的饼图绘制函数是pie。下面是一个例子,用来绘制三种水果分别的销售占比。

import matplotlib.pyplot as plt

labels = ["Apple", "Orange", "Banana"]
sizes = [30, 40, 30]

plt.pie(sizes, labels=labels)
plt.show()

在这个例子中,我们手动定义了三种水果名称和它们的销售占比。然后我们使用pie函数绘制了这个饼图,并使用show函数将其显示出来。

绘制等高线图

Matplotlib中的等高线图绘制函数是contour。下面是一个例子,用来绘制二元高斯分布的等高线图。

import matplotlib.pyplot as plt
import numpy as np

x, y = np.meshgrid(np.linspace(-3, 3, 100), np.linspace(-3, 3, 100))
z = np.exp(-(x**2 + y**2)/2) / (2 * np.pi)

plt.contour(x, y, z)
plt.show()

在这个例子中,我们使用了NumPy库中的meshgrid函数,生成了一个二维网格,作为x轴和y轴的数据。然后我们使用一个二元高斯分布计算了每个点对应的z值。最后,我们使用contour函数绘制了这个等高线图,并使用show函数将其显示出来。

绘制3D图

Matplotlib中的3D图绘制函数是plot_surface。下面是一个例子,用来绘制一个带有多个极值点的三维函数。

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

fig = plt.figure()
ax = fig.gca(projection="3d")

x, y = np.meshgrid(np.linspace(-3, 3, 100), np.linspace(-3, 3, 100))
z = np.sin(np.sqrt(x**2 + y**2)) / (np.sqrt(x**2 + y**2))

ax.plot_surface(x, y, z)
plt.show()

在这个例子中,我们使用了Matplotlib中的Axes3D模块,生成了一个三维图表的坐标系对象。然后我们使用了NumPy库中的meshgrid函数,生成了一个二维网格,作为x轴和y轴的数据。然后我们使用一个三维函数计算了每个点对应的z值。最后,我们使用plot_surface函数绘制了这个三维图,并使用show函数将其显示出来。

Axes对象的使用

在Matplotlib中,所有的绘图都是在虚拟的“图形(Figure)”对象中完成的。每个图形对象可以包含一个或多个“坐标系(Axes)”对象。坐标系对象则是真正绘制图形的对象。

下面是一个例子,展示了如何创建一个包含多个坐标系的图形,并进行一些基本的设置。

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()

# 创建第一个坐标系对象
ax1 = fig.add_subplot(2, 2, 1)
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
ax1.plot(x, y)
ax1.set_title("Sine")

# 创建第二个坐标系对象
ax2 = fig.add_subplot(2, 2, 2)
x = np.linspace(-3, 3, 100)
y = np.exp(-x**2)
ax2.plot(x, y)
ax2.set_title("Gaussian")

# 创建第三个坐标系对象
ax3 = fig.add_subplot(2, 2, 3)
x = np.random.normal(size=100)
y = np.random.normal(size=100)
ax3.scatter(x, y)
ax3.set_title("Scatter")

# 创建第四个坐标系对象
ax4 = fig.add_subplot(2, 2, 4)
x = ["A", "B", "C"]
y = [30, 40, 50]
ax4.bar(x, y)
ax4.set_title("Bar")

plt.show()

在这个例子中,我们使用了Matplotlib中的add_subplot函数,创建了四个坐标系对象,并将它们加入到了同一个图形对象中。然后我们使用各种不同的图表类型,分别在这四个坐标系对象中绘制了四个不同的图表。最后,我们使用show函数将这个图形显示出来。

Formatter对象的使用

在Matplotlib中,Formatter用于控制坐标轴上标签的格式化方式。标签可以是数字,也可以是字符串,Formatter可以帮助我们将它们格式化成我们想要的样式。

下面是一个例子,展示了如何使用Formatter将x轴上的数字标签格式化为日期。

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.dates import DateFormatter, DayLocator

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

# 准备数据
dates = np.array(["2020-01-01", "2020-02-01", "2020-03-01", "2020-04-01", "2020-05-01"], dtype="datetime64")
values = np.array([10, 20, 15, 25, 30])

# 绘制折线图
ax.plot(dates, values)

# 设置x轴的主要刻度为每天
ax.xaxis.set_major_locator(DayLocator())

# 设置x轴上的数字标签格式化为日期
date_formatter = DateFormatter("%Y-%m-%d")
ax.xaxis.set_major_formatter(date_formatter)

# 设置x轴标签倾斜,使其更易读
plt.xticks(rotation=30)

plt.show()

在这个例子中,我们首先准备了一个日期数组和相应的数据数组。然后我们使用plot函数绘制了这个折线图。接着,我们使用DayLocator函数将x轴的主要刻度设置为每天。然后我们使用DateFormatter函数将数字标签格式化为日期类型。最后,我们使用rotation参数将x轴标签倾斜,使其更易读。

总结

Matplotlib是一个非常强大的数据可视化库,可以帮助我们创建各种类型的图表。在使用Matplotlib时,我们通常会使用pyplot模块,它提供了一系列的函数,可以帮助我们快速创建各种类型的图表。

在Matplotlib中,所有的绘图都是在虚拟的“图形(Figure)”对象中完成的。每个图形对象可以包含一个或多个“坐标系(Axes)”对象。坐标系对象则是真正绘制图形的对象。

Formatter用于控制坐标轴上标签的格式化方式。标签可以是数字,也可以是字符串,Formatter可以帮助我们将它们格式化成我们想要的样式。在使用Formatter时,我们可以使用各种预定义好的函数,也可以自定义函数来进行格式化。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程