gpt4 book ai didi

python - Pyplot 在图例中显示不同的颜色,但以相同的颜色绘制

转载 作者:行者123 更新时间:2023-12-01 04:19:04 26 4
gpt4 key购买 nike

我正在尝试使用 Pyplot 绘制 nstrats 不同的帕累托前沿,但无论我尝试什么,每个前沿都以相同的颜色出现。我尝试过使用和不使用下面的颜色数组来执行此操作,因为我读到 Python 自动循环颜色。也许我在循环中使用绘图/散点函数的方式有问题?我的代码和输出图的链接如下。特别注意,图例显示了我的正面的正确颜色,但所有输出都是一种颜色。我已经验证输出来自多种策略。感谢您的帮助!

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

我的程序输出什么:

output image

最佳答案

发生这种情况是因为所有内容都是由同一个绘图命令绘制的。

这是一个例子:

import matplotlib.pyplot as plt
import numpy as np

data = [1, 100, 2, 200, 3, 300, 4, 400, 5, 500]
data = np.reshape(data, (5, 2))

column = 0
chunks = dict()
chunks[0] = data[data[:, column] < 300]
chunks[1] = data[data[:, column] >= 300]

for i in chunks:
plt.plot(chunks[i][:, 0], chunks[i][:, 1], "x", label="Chunk %i" % i)

plt.legend()
plt.show()

数据应根据 y 值分割成 block 。但是发生了错误,为 x 列输入了 0,而不是 y 列的 1。由于这个错误, block 0 是数据的完整副本,而 block 1 是空的。因此,所有内容都由第一个绘图命令以相同的颜色绘制。第二个命令仅将具有不同颜色的标签添加到图例中,因为 block 1 中没有要绘制的数据。

关于python - Pyplot 在图例中显示不同的颜色,但以相同的颜色绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33930822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com