我有一个数据结构,它是一个嵌套的字典,称为team_dict。 Team_dict看起来像这样:team_dict[teams][players][stats]
。
Team_dict = {'gs': {'Steph': {'PPG':26 ,'Reb':10 'Ast':10} }}
我遇到的问题是我可以很好地绘制所有数据,但我希望每个团队的标记颜色相同。我知道原因是因为我为每个玩家遍历了循环。现在,我的散点图代码是:
'data': [
go.Scatter(
x=[team_dict[i][p]['Salary']],
y=[team_dict[i][p]['PPG']],
text=p,
mode='markers',
opacity=0.7,
marker={
'size': 15,
'line': {'width': .5, 'color': 'black'}
},
name= i,
)
for i in team_initials
for p in team_dict[i]
],
这是现在的样子: scatterplot so far 我尝试查看破折号文档和其他方法,但似乎没有任何效果。我不应该使用嵌套词典来绘制虚线图吗?
答案 0 :(得分:1)
为每个团队创建字典,例如:
team_colors = {'gs':'#E90', 'hou': '#555', 'LAC': '#FF0'}
然后,当您迭代时,通过调用color
中的marker
属性向散点图添加颜色。
'data': [
go.Scatter(
x=[team_dict[i][p]['Salary']],
y=[team_dict[i][p]['PPG']],
text=p,
mode='markers',
opacity=0.7,
marker={
'size': 15,
'line': {'width': .5, 'color': 'black'},
'color':team_color[i] # looks like you iterate through team names
},
name= i,
)
for i in team_initials
for p in team_dict[i]
],
这应该使同一支球队的比赛具有相同的颜色。最好将嵌套的词典转换为pandas数据框并一次传递整个团队,然后仅调用您想要的列"Salary"
和"PPG"
。您可以使用this post向您展示如何从嵌套字典中制作数据框。