Python 使用每个关键点的不同值和每个关键点的不同颜色进行打印
我有一个包含3个字典的列表,每个字典都有多个值。 我想创建一个图形,其中每个键都是一条由其值组成的不同颜色的线(比如r、g、b)。我还想为每一行的图例 这是我开始使用的代码:Python 使用每个关键点的不同值和每个关键点的不同颜色进行打印,python,matplotlib,Python,Matplotlib,我有一个包含3个字典的列表,每个字典都有多个值。 我想创建一个图形,其中每个键都是一条由其值组成的不同颜色的线(比如r、g、b)。我还想为每一行的图例 这是我开始使用的代码: plt.figure(figsize=(14,8)) plt.title('Grafico ripetizioni per linea') plt.xlabel('numero caratteri') plt.ylabel('ripetizioni per linea') for k in dd.keys():
plt.figure(figsize=(14,8))
plt.title('Grafico ripetizioni per linea')
plt.xlabel('numero caratteri')
plt.ylabel('ripetizioni per linea')
for k in dd.keys():
plt.locator_params(axis='y', nbins=15)
for v in dd.values():
plt.locator_params(axis='x', nbins=30)
xs = range(0, len(v))
ys = v
plt.plot(xs, ys, label='chiave' + str(k))
plt.minorticks_on()
plt.margins(x=0)
plt.show()
我得到了一个有三条不同颜色的线的图,但是
不知道如何为每行指定颜色和标签。尝试以下方法:
调用plt.legend
将为每个键提供标签
plt.figure(figsize=(14,8))
plt.title('Grafico ripetizioni per linea')
plt.xlabel('numero caratteri')
plt.ylabel('ripetizioni per linea')
for k in dd.keys():
plt.locator_params(axis='y', nbins=15)
for v in dd.values():
plt.locator_params(axis='x', nbins=30)
xs = range(0, len(v))
ys = v
plt.plot(xs, ys, label='chiave_{}'.format(k))
plt.minorticks_on()
plt.legend()
plt.margins(x=0)
plt.show()
我认为这是一个可能的解决办法:
plt.figure(figsize=(14,8))
plt.title('Grafico ripetizioni per linea')
plt.xlabel('numero caratteri')
plt.ylabel('ripetizioni per linea')
plt.minorticks_on()
plt.margins(x=0)
plt.locator_params(axis='y', nbins=15)
plt.locator_params(axis='x', nbins=30)
for k,v in dd.items():
xs = range(0, len(v))
ys = v
plt.plot(xs, ys, label=f'chiave_{k}')
plt.legend()
plt.show()
添加您的行可以正确地显示图例,但图形中的三行中只有一行编辑了代码。我不确定你得到的是什么值和你的dict的结构。使用plt.legend
你只需稍加调整就可以得到你的输出。我有与你相同的代码。(列表是一个字典列表,每个键有多个值)。我得到的是三个带有三行的图形,但在每个图形中,图例只有一个键名出现三次,每种颜色都相同。您正在使用k
作为打印标签,但在创建打印时,您使用变量v
在dd.values()
上进行嵌套循环迭代。我认为你的标签应该是label='chiave'+str(v)
(或者别的什么,但绝对不是k
,没有数据很难判断。但是k
在你的循环中对于dd.values()中的v是常量)实际上,K是一个循环3个键的变量,对于每个键v,是绘制在y轴上的值,而x轴表示文本的长度。这就是为什么存在嵌套循环。