将相同的点添加到所有子图中
Add the same point to all subplots
我有一个显示 8 个子图的程序,所有对数图都包含来自 8 个不同文件的不同数据。
我合并了所有数据并计算了平均值。现在,我有一个具有特定 x 和 y 坐标的点,我想绘制到每个图形上。我在做这件事时遇到了麻烦,我所有的子图都作为循环的一部分绘制,直到最后(一旦读取了所有数据文件)我才计算平均值,所以需要找到一种方法将这一点绘制到现有子图。
在我的循环结束时,我尝试了我认为很明显(但效率低下)的方法来绘制这个:
if plotnum in [1,2,3,4,5,6,7,8]:
plt.plot(np.log(100),np.log(mean_length),'ro')
其中 100 是我设置的 x 值,mean_length 是我设置的 y 值,但这不起作用。
有什么想法吗?
您必须遍历您拥有的不同轴。
你没有post你的图表生成代码,所以我会补上一些:
import matplotlib.pyplot as plt
all_axes = []
for idx in range(1,10):
ax = plt.subplot(3, 3, idx)
ax.plot([1,2,3], [10, 30, 80])
all_axes.append(ax)
现在我们有一堆图表,您想在每个图表中包含一个点。所以循环遍历这些轴,并添加这个点!
for ax in all_axes:
ax.scatter([4.6], [20])
并更新图表:
plt.draw()
我有一个显示 8 个子图的程序,所有对数图都包含来自 8 个不同文件的不同数据。
我合并了所有数据并计算了平均值。现在,我有一个具有特定 x 和 y 坐标的点,我想绘制到每个图形上。我在做这件事时遇到了麻烦,我所有的子图都作为循环的一部分绘制,直到最后(一旦读取了所有数据文件)我才计算平均值,所以需要找到一种方法将这一点绘制到现有子图。
在我的循环结束时,我尝试了我认为很明显(但效率低下)的方法来绘制这个:
if plotnum in [1,2,3,4,5,6,7,8]:
plt.plot(np.log(100),np.log(mean_length),'ro')
其中 100 是我设置的 x 值,mean_length 是我设置的 y 值,但这不起作用。
有什么想法吗?
您必须遍历您拥有的不同轴。
你没有post你的图表生成代码,所以我会补上一些:
import matplotlib.pyplot as plt
all_axes = []
for idx in range(1,10):
ax = plt.subplot(3, 3, idx)
ax.plot([1,2,3], [10, 30, 80])
all_axes.append(ax)
现在我们有一堆图表,您想在每个图表中包含一个点。所以循环遍历这些轴,并添加这个点!
for ax in all_axes:
ax.scatter([4.6], [20])
并更新图表:
plt.draw()