如何将多个图形分开绘制?

4

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()

获取以下绘图: enter image description here

但是,在此图中,一个图的最后一点与下一个图的第一点相连。我想将它们分开。 我想绘制这样的图:

enter image description here


1
如果我理解正确的话,你需要将 xy 分别拆分成它们的各个部分。目前 xy 每个都有 100 个值,你想分别绘制每个十个值。可以采用以下类似的方法:for i in range(10): plt.plot(x[:10], y[10*i:10*(i+1)]) - Nabil Daoud
1个回答

2

您可以按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()

2
为什么在“range”函数中加1,然后再减去它呢?应该只是“range(len(x)// 10)”和“plt.plot(x [10 * i:10 *(i + 1)],y [10 * i:10 *(i + 1)])”。 - Nabil Daoud
1
或者使用range(0,len(x),10),少做一些数学计算。 - Mark Tolonen
1
如何在这个图中添加图例? - ED314

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接