我需要帮助绘制字典,下面是数据样本数据集。我想创建一个散点图,其中x:y是(x,y)坐标,title'x'将是图形的图例。我想创建下面数据集的图形,所以将所有下面的数据合并到一个图形中。
例如:plot title1':{x:y,x:y}用红色(或任何其他颜色)使图例(键)表示为title1的红色(或任何颜色),
为title2做同样的事:{x:y,x:y}(用不同的颜色)....等等。
非常感谢任何帮助。谢谢。
data = {'title1':{x:y, x:y},title2:{x:y,x:y,x:y},'title3':{x:y,x:y}....}
我也遵循了这个建议,但它是针对个人图表的。 Plotting dictionaries within a dictionary in Myplotlib python
这是我尝试过的,我在matplotlib上没有太多经验,也找不到任何有用的onlline。任何帮助将不胜感激。
import matplotlib.pyplot as plt
import numpy as np
d ={'5000cca234c1c445': {382877: 7, 382919: 3},
'5000cca234c94a2e': {382873: 1, 382886: 1},
'5000cca234c89421': {383173: 1, 383183: 2, 382917: 1, 382911: 1},
'5000cca234c5d43a': {382889: 1, 382915: 1, 382917: 8},
'5000cca234c56488': {382909: 2, 382911: 5}}
xval = []
yval= []
ttle = []
print d
for title, data_dict in d.iteritems():
x = data_dict.keys()
#print 'title is', title
#print 'printing x values',x
xval = xval + x
print xval
y = data_dict.values()
yval = yval+y
ttle.append(title)
print yval
#print 'printing y values', y
#plt.figure()
print xval
print yval
print ttle
plt.scatter(xval,yval)
plt.show()
答案 0 :(得分:5)
您可以尝试在循环上绘图,然后显示图例,如下所示:
import matplotlib.pyplot as plt
d ={'5000cca234c1c445': {382877: 7, 382919: 3},
'5000cca234c94a2e': {382873: 1, 382886: 1},
'5000cca234c89421': {383173: 1, 383183: 2, 382917: 1, 382911: 1},
'5000cca234c5d43a': {382889: 1, 382915: 1, 382917: 8},
'5000cca234c56488': {382909: 2, 382911: 5}}
colors = list("rgbcmyk")
for data_dict in d.values():
x = data_dict.keys()
y = data_dict.values()
plt.scatter(x,y,color=colors.pop())
plt.legend(d.keys())
plt.show()
答案 1 :(得分:0)
尝试一下:
data = {'title1':{x:y, x:y},title2:{x:y,x:y,x:y},'title3':{x:y,x:y}....}
plt.scatter(*zip(*data.items()))
plt.show()