python - 统计抛硬币的结果

标签 python matplotlib presentation

<分区>

我已经编写了一小段代码来模拟抛硬币的结果,并且想找到一种比连续抛硬币的列表更好的方式来呈现结果。作为我物理学学位的一部分,我已经学习 Python 一个月了,如果这有助于提供一些背景的话。

这是代码;

from pylab import *

x=0
while x<=100:

    num = randint(0,2)
    if num == 0:
        print 'Heads'
    else:
        print 'Tails'
    x=x+1
print 'Done'

我有哪些选择可以以更易于理解的方式呈现这些数据?

最佳答案

Python 无需使用 while 循环并将结果打印到屏幕,而是可以使用 Counter 非常巧妙地进行计数和存储结果。 ,内置字典容器的子类。

例如:

from collections import Counter
import random

Counter(random.choice(['H', 'T']) for _ in range(100))

当我运行代码时,它产生了以下计数:

Counter({'H': 52, 'T': 48})

我们可以看到正面被翻转了 52 次,反面被翻转了 48 次。

这已经很容易解释了,但是现在您已经有了数据结构中的数据,您还可以绘制一个简单的条形图。

遵循 Stack Overflow 答案中的建议 here ,你可以这样写:

import matplotlib.pyplot as plt

# tally = Counter({'H': 52, 'T': 48})

plt.bar(range(len(tally)), tally.values(), width=0.5, align='center')
plt.xticks(range(len(tally)), ['H', 'T'])
plt.show()

这会生成一个条形图,如下所示:

enter image description here

关于python - 统计抛硬币的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28515560/

相关文章:

javascript - 通过 Javascript 将不断变化的文本文件数据输出到网页上

python - PIP 加密安装失败

python - 在 Beautiful Soup 中,如何动态搜索表格以查找特定元素?

python:在顶部绘制带有函数线的直方图

python - matplotlib plot_surface 带有非线性颜色图的 3D 图

html - CSS - 背景大小 : Cover is too big

javascript - 使用 html 制作幻灯片的最佳实践或框架是什么?

python - 如何使用 python cv2 api 为 undistortPoints 格式化 xy 点?

python - 每次在 plots 选项卡 spyder IDE 中运行代码时清除所有 seaborn 图

charts - 如何调整 GraphViz 集群的边距?