【问题标题】:Points are not in the correct place MatPlotLib pyplot.plot()点不在正确的位置 MatPlotLib pyplot.plot()
【发布时间】:2021-03-06 21:57:05
【问题描述】:

我正在尝试使用 pyplot.plot() 绘制存储在列表中的值,但它正在将存储在列表中的值绘制在图上的索引处。

我尝试使用 numpy.array() 将列表类型转换为数组,但遇到了同样的问题。

我还检查以确保使用 for 循环正确读取值。

import matplotlib.pyplot as plt
import numpy as np

readin = open('datapoints.txt', 'r')
xpoints = []
ypoints = []
i = 0
for line in readin:
    line = line.split(' ')
    xpoints.append(line[0])
    ypoints.append(line[1])
    i += 1
print(i)


plt.ylim([-5, 20])
plt.xlim([-5, 20])

plt.plot(xpoints, ypoints)
plt.show()

X plot shows the problem.

【问题讨论】:

  • 可能是因为您将 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] 绘制为 y 值。你试过plt.plot(xpoints, ypoints)吗?
  • 是的,我改变它来尝试调试。当我这样做时,y 点也会发生同样的问题。我会尝试附上一张图片。

标签: python matplotlib


【解决方案1】:

问题是line.split() 返回一个字符串列表,而不是您可能想要的浮点数/整数。

因此,您在 .txt 文件中的 xpointsypoints 值是字符串,并且正在按原样绘制。

您的情节正在将“str_x”映射到“str_y”,这就是为什么您会看到一个看起来像 y=x 的奇怪情节 因为 ["4","4"] 实际上并未被绘制为 [4,4]。

只需将您的 line[0]line[1] 类型转换为 float(line[0])float(line[1])

【讨论】:

    猜你喜欢
    • 2017-09-14
    • 2015-12-05
    • 2018-12-21
    • 2020-09-05
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多