我试图用Pyplot绘制不同的pareto前沿,但是不管我尝试了什么,每个前沿都是相同的颜色。我尝试过在使用和不使用下面的colors数组的情况下执行此操作,因为我读到Python会自动循环使用颜色。也许我在循环中使用plot/scatter函数有问题吗?下面是我的代码和输出图的链接。特别要注意的是,图例显示了我正面的正确颜色,但所有输出都是一种颜色。我已经验证了输出来自多个策略。谢谢你的帮助!在
colors = ['r', 'g', 'b']
for i in range(nstrats):
plt.scatter(NPV[i], dev[i], color=colors[i], label = 'Strategy ' + str(i+1))
plt.xlabel("NPV of Harvest Strategy")
plt.ylabel("Standard Dev of Yearly Harvest")
plt.title("Pareto Front for Each Strategy")
plt.legend(loc='best')
plt.show()
我的程序输出:
发生这种情况是因为所有内容都是由同一个plot命令打印的。在
下面是一个例子:
应该根据y值将数据分成块。但是出现了一个错误,而不是为列y输入了1,而是为列x输入了0。由于这个错误,块0是数据的完整副本,而块1是空的。因此,第一个plot命令以相同的颜色打印所有内容。第二个命令只将颜色不同的标签添加到图例中,因为块1中没有要打印的数据。在
尝试将参数颜色更改为c
注意:保持值(nstart<;=3)。否则,它就行不通了。在
相关问题 更多 >
编程相关推荐