是否可以绘制具有多个具有不同颜色的值的字典?假设我们有一本字典:
d = {"alpha": [1,2,3,4], "beta": [5,6,7,8]}
如何绘制alpha[0]
,beta[0]
...蓝色和alpha[1]
,beta[1]
....黄色等情节?
比方说,值在y轴上,键在x轴上。 我的代码如下:
x_multi = []
y_multi = []
for k, v in data_all_bands.iteritems():
x_multi.extend(list(itertools.repeat(int(k[-3:]), len(v))))
y_multi.extend(v)
plt_multi = axes[0].scatter(x_multi, y_multi)
data_all_bands看起来像这样:
2016050 [4.2958281793198241, 3.7025449821599157, 5.1717757645735025, 4.9954723025001719]
2016178 [4.0679016016577032, 2.890807214158575, 4.9627629940324081, 4.8505350289087952]
2016290 [3.6947496139720259, 3.1549071645707891, 4.5131724769284824, 4.4082219917836483]
答案 0 :(得分:1)
以下是一种使用您选择的预先分配的颜色列表并以不同颜色绘制每个键的值的方法。这样,您无需定义任何空列表x_multi
和y_multi
。
fig = plt.figure()
ax = fig.add_subplot(111)
colors = ['blue', 'yellow', 'green']
i = 0
for k, v in data_all_bands.items():
x_multi = list(itertools.repeat(int(k[-3:]), len(v)))
plt_multi = ax.scatter(x_multi, v, color=colors[i])
i += 1
方法2 ,因为不清楚您想要哪种颜色
x_multi = [int(k[-3:]) for k in data_all_bands.keys()]
colors = ['blue', 'yellow', 'green', 'red']
for i in range(len(list(data_all_bands.values())[0])):
y_multi = [v[i] for v in data_all_bands.values()]
plt_multi = ax.scatter(x_multi, y_multi, color=colors[i])