使用matplotlib和字典在python中绘制散点图

use*_*210 6 python matplotlib

我需要帮助绘制字典,下面是数据样本数据集.我想创建一个散点图,其中x:y是(x,y)坐标,title'x'将是图形的图例.我想创建下面数据集的图形,所以将所有下面的数据合并到一个图形中.

例如:以红色(或任何其他颜色)绘制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}....}
Run Code Online (Sandbox Code Playgroud)

我也遵循了这个建议,但这是针对个人图表. 在Myplotlib python的字典中绘制字典

这是我尝试过的,我在matplotlib上没有太多经验,也找不到任何有用的东西.任何帮助将不胜感激.

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()
Run Code Online (Sandbox Code Playgroud)

Alv*_*tes 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()
Run Code Online (Sandbox Code Playgroud)

  • @Robru我认为这是答案[https://docs.python.org/2/library/stdtypes.html#dict.items].TLTR; 如果在呼叫之间没有修改字典,它们是随机的但彼此对应. (3认同)
  • 请注意,这在python 3.x中不起作用.你必须编写类似`list(data_dict.keys())`的东西(对于值都是一样的).有关详细信息,请参阅http://stackoverflow.com/questions/31755900/python-3-xs-dictionary-view-objects-and-matplotlib. (3认同)