使用 matplotlib.pyplot
绘制带有数据点标记的线图,同时使用 EventCollection
标记每条曲线各自轴上的 x 和 y 数据点的位置。。
设置随机种子和创建随机数据:
np.random.seed(19680801)
xdata = np.random.random([2, 10])
设置随机种子以确保可重现性,并生成一个2x10的数组作为随机数据。
将数据分成两部分并排序:
xdata1 = xdata[0, :]
xdata2 = xdata[1, :]
xdata1.sort()
xdata2.sort()
将数据分成两部分并对每一部分进行排序,以便得到清晰的曲线。
创建y数据点:
ydata1 = xdata1 ** 2
ydata2 = 1 - xdata2 ** 3
根据x数据创建对应的y数据。
绘制数据:
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(xdata1, ydata1, color='tab:blue')
ax.plot(xdata2, ydata2, color='tab:orange')
使用 plot
函数绘制两条曲线。
创建标记x和y数据点的事件:
xevents1 = EventCollection(xdata1, color='tab:blue', linelength=0.05)
xevents2 = EventCollection(xdata2, color='tab:orange', linelength=0.05)
yevents1 = EventCollection(ydata1, color='tab:blue', linelength=0.05, orientation='vertical')
yevents2 = EventCollection(ydata2, color='tab:orange', linelength=0.05, orientation='vertical')
使用 EventCollection
创建用于标记x和y数据点的事件集合。
将事件添加到轴上:
ax.add_collection(xevents1)
ax.add_collection(xevents2)
ax.add_collection(yevents1)
ax.add_collection(yevents2)
将创建的事件集合添加到轴上,以在图中显示数据点的标记。
设置坐标轴的范围和标题:
ax.set_xlim([0, 1])
ax.set_ylim([0, 1])
ax.set_title('line plot with data points')
设置x和y坐标轴的范围,并设置图标题。
显示图形:
plt.show()
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.collections import EventCollection
# 设置随机种子以便重现性
np.random.seed(19680801)
# 创建随机数据
xdata = np.random.random([2, 10])
# 将数据分成两部分
xdata1 = xdata[0, :]
xdata2 = xdata[1, :]
# 对数据进行排序,以得到清晰的曲线
xdata1.sort()
xdata2.sort()
# 创建一些y数据点
ydata1 = xdata1 ** 2
ydata2 = 1 - xdata2 ** 3
# 绘制数据
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(xdata1, ydata1, color='tab:blue')
ax.plot(xdata2, ydata2, color='tab:orange')
# 创建标记x数据点的事件
xevents1 = EventCollection(xdata1, color='tab:blue', linelength=0.05)
xevents2 = EventCollection(xdata2, color='tab:orange', linelength=0.05)
# 创建标记y数据点的事件
yevents1 = EventCollection(ydata1, color='tab:blue', linelength=0.05, orientation='vertical')
yevents2 = EventCollection(ydata2, color='tab:orange', linelength=0.05, orientation='vertical')
# 将事件添加到轴上
ax.add_collection(xevents1)
ax.add_collection(xevents2)
ax.add_collection(yevents1)
ax.add_collection(yevents2)
# 设置坐标轴的范围
ax.set_xlim([0, 1])
ax.set_ylim([0, 1])
# 设置图标题
ax.set_title('line plot with data points')
# 显示图形
plt.show()