【问题标题】:How to plot multiple plots separately?如何分别绘制多个图?
【发布时间】:2021-03-03 13:35:52
【问题描述】:

X 数据集:

x = [1.02, .95, .87, .77, .67, .56, .44, .30,
.16, .01, 1.02, .95, .87, .77, .67, .56, .44,
.30, .16, .01, 1.02, .95, .87, .77, .67, .56,
.44, .30, .16, .01, ...................]

Y 数据集:

y = [0.39, .32, .27, .22, .18, .15, .13, .12,
.13, .15, 0.56, .37, .67, .27, .15, .13, .12,
.09, .06, .03,....................................]

我有这种数据,其中 x 在 10 个值之后重复,y 也在相应变化。我想将这些数据绘制在一张图中。我试过这个:

plt.plot(x, y)
plt.show()

并得到以下情节:

但是在这个图中,一个图的最后一个点连接到下一个图的第一个点。我想把它们分开。 我想像这样绘制:

【问题讨论】:

  • 您需要将 x 和 y 分解成各自的部分,如果我理解正确的话,xy 目前各有 100 个值,您希望每十个分别绘制。类似for i in range(10): plt.plot(x[:10], y[10*i:10*(i+1)])

标签: python matplotlib graph


【解决方案1】:

您可以按 10 次迭代 x 值,然后使用切片相应地绘制每个 x 重复。

for i in range(1, len(x) // 10 + 1):
    plt.plot(x[(i - 1) * 10:i * 10], y[(i - 1) * 10:i * 10])
plt.show()

【讨论】:

  • 为什么在range函数中加1只是为了以后减去呢?应该只是range(len(x) // 10)plt.plot(x[10*i:10*(i+1)], y[10*i:10*(i+1)])
  • range(0,len(x),10) 少做数学。
  • 如何在这个情节中添加图例?
猜你喜欢
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多