【问题标题】:Matplotlib is plotting plots twice, but plt.plot is only called once?Matplotlib 绘制绘图两次,但 plt.plot 只调用一次?
【发布时间】:2019-02-09 13:53:43
【问题描述】:

我正在用三条单独的线制作一个简单的图,并且对于每条线我调用一次 pyplot.plot。出于某种原因,每条线都被绘制了两次,每个图的重复线不代表数据。

如您所见,三行绘制正确,但图例显示每行两行。此外,在图的底部,您可以看到失败的副本都遵循相同的路径。

非常感谢任何帮助。

【问题讨论】:

  • 您甚至可以获得 100 个重复项,具体取决于您使用的输入;但这在这里是未知的。见minimal reproducible example
  • time_s1damage 等的尺寸是多少。如果它们是 nx2,那么每次绘图调用会得到两条线。

标签: python matplotlib plot data-visualization


【解决方案1】:

检查变量的维度,如果它们是 nx2,那么每次绘图调用将得到 2 行。参考pyplot plot documentation here.具体讲到哪里:

绘制多组数据。

或者,如果您的数据已经是二维数组,您可以传递它 直接到 x, y。将为每一列绘制一个单独的数据集。

此外,在这里发布代码图片也不是很有用。您应该将实际代码添加到问题中,因为它更有用。

例子:

import matplotlib.pyplot as plt
import numpy as np
test1 = np.random.randn(10,2)
test2 = np.random.randn(10,2)
plt.plot(test1 ,color='blue',label='test1')
plt.plot(test2 ,color='green',label='test2')
plt.legend(loc='upper left')

【讨论】:

  • 这就是问题所在。我正在使用 pandas reset_index() 函数而没有将 drop 参数设置为 True。 (即 df.reset_index(drop=True) )。这导致向数据添加了一个额外的维度。谢谢你,航空工程师!
猜你喜欢
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 2019-12-22
  • 1970-01-01
相关资源
最近更新 更多