【问题标题】:How to plot specific points in array with matplotlib?如何使用 matplotlib 在数组中绘制特定点?
【发布时间】:2017-03-07 21:25:53
【问题描述】:

我生成了两个具有 10 个不同值的数组。如何使用 matplotlib 在每个数组中绘制 3 个特定值?到目前为止,这是我的代码:

import numpy as np
import matplotlib as plt
x = np.array(1,2,3,4,5,6,7,8,9,10)
y = np.array(1,2,3,4,5,6,7,8,9,10)

我只想绘制 x 数组的点 3、4、5 及其对应的 y 值。我试过这个:

plt.plot(x[2,3,4], y[2,3,4])
plt.show()

但我收到错误“数组索引过多”。但是,如果我写

plt.plot(x[2], y[2])
plt.show()

将绘制数组中的第二个元素。

【问题讨论】:

  • 尝试:x = np.array(1,2,3,4,5,6,7,8,9,10) --> x = np.array([1,2,3,4,5,6,7,8,9,10]) 对 y 也一样。在情节中:x[2:5], y[2:5]
  • 我想你也想导入pyplot子模块:import matplotlib.pyplot as plt
  • 非常感谢!如果我只想在每个数组中绘制 3 个不同的随机元素,我该怎么做?对于我的实际数据,元素的顺序不是从小到大
  • 然后你可以输入 x[np.array([2,3,4])] 而不是绘制 x[2,3,4] !如果 x 是一个 numpy 数组,您可以使用另一个 numpy 数组选择元素:)

标签: python arrays numpy matplotlib


【解决方案1】:

问题在于x[3, 4, 5] 的语法。你要做的是x[3]x[4]x[5],这是数组的各自元素,这是错误的。

print(x[3], x[4], x[5]) # print 4, 5, 6

更舒适的方法是:

plt.plot(x[2:5], y[2:5])
plt.show()

x[2:5] 从第三个到第五个元素返回。

正如Tony Tannous 所说,数组的创建也是错误的。 np.array 需要一个列表!

那么你还得改变x和y的创建:

x = np.array([1,2,3,4,5,6,7,8,9,10])
y = np.array([1,2,3,4,5,6,7,8,9,10])

添加[] 使其成为一个列表。

当然你应该看看Indexing的文档

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-06
  • 2013-06-09
  • 1970-01-01
  • 2019-08-14
相关资源
最近更新 更多