【问题标题】:Python 3 - Plotting a mapplotlib graph from dictionary pairsPython 3 - 从字典对绘制 mapplotlib 图
【发布时间】:2021-06-29 12:34:26
【问题描述】:

我是 python 新手——我给自己设置了一些统计练习来掌握语法。这个特殊的方法是绘制两个骰子投掷次数的结果。

我创建了我的投掷列表,然后创建了一个字典来映射所有可能值 2-12 的每个结果的总投掷。我现在想用 pyplot 来绘制它的频率。我已将其复制回列表以按顺序排序,但我想不出一种方法来提取总数以仅将它们绘制在图表上。下面的代码给出了总数的一条线,以及对应的 2 到 12 键的一条直线。我想我可能在这里过于费力,所以任何提示都将不胜感激。

谢谢,莎拉

from matplotlib import pyplot 
from random import *
diceTotal = []
totThrows = dict()
i = 0
numThrows = 100

#Create data
for i in range(numThrows):
  diceTotal.append(randint(1,6) + randint(1,6))

#Store totals
for dice in diceTotal:
  totThrows[dice] = totThrows.get(dice,0) + 1

#Sort totals by key
listThrows = list(totThrows.items())
listThrows.sort()

plotThrows = list(listThrows)
print(plotThrows)
pyplot.plot(plotThrows) 
pyplot.show() 

【问题讨论】:

    标签: python list dictionary matplotlib graph


    【解决方案1】:

    你的问题不清楚。但是,如果您想提取plotThrows 中的信息,只需按如下方式对其进行迭代即可;

    xvals = [x[0] for x in plotThrows]
    yvals = [x[1] for x in plotThrows]
    

    一种方法是绘制散点图;

    pyplot.scatter(xvals, yvals)
    pyplot.show()
    

    我希望这是你的问题。否则,您应该澄清您的问题以获得答案。

    【讨论】:

    • 谢谢你 - 很抱歉没有有效地沟通。我缺少的关键线是为每个值提取第二个坐标的方法: yvals = [x[1] for x in plotThrows] 这使我只能绘制这些值。 - 更重要的是,它展示了我如何从字典项数组中提取值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    相关资源
    最近更新 更多