【问题标题】:Hist chart from list列表中的历史图表
【发布时间】:2022-01-14 15:21:27
【问题描述】:
import matplotlib as plp
cube = []
z = 0
while not z == 50:
    x = random.randint(1, 6)
    cube.append(x)
    z = z + 1
print(cube)
plp.plot(cube[1])
plp.show()

如何修复此代码以显示包含在我的列表立方体中的组件的直方图?

【问题讨论】:

  • 你的导入看起来很可疑——试试import matplotlib.pyplot as plp
  • 查看直方图:plp.hist(cube),然后是plp.show()
  • 这段代码有什么问题?不要指望我们会运行它来发现问题。
  • 始终将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图,不是指向外部门户的链接)(不是在 cmets 中)。还有其他有用的信息。

标签: python list numpy matplotlib math


【解决方案1】:

cmets 确实对您可以进行的大多数修复提出了一些建议,但您也可以通过其他方式大量改进此代码。这是我的建议:

import matplotlib.pyplot as plt
import random

cube = []
for _ in range(50):
    x = random.randint(1, 6)
    cube.append(x)

plt.hist(cube)
plt.show()

首先,由于您只使用 z 作为迭代计数器,因此这里最好使用 for 循环(尽管 while 循环仍然可以工作,但它更容易出错)。我还将 plp 更改为 plt,您不必这样做,但这是惯例。然后您可以使用 plt.hist(cube) 绘制直方图。

注意,如果你想使用 numpy,你可以让它变得更简单:

import matplotlib.pyplot as plt
import numpy as np

cube = np.random.randint(1, 6, size=50)

plt.hist(cube)
plt.show()

由于 numpy 允许您指定所需随机数数组的大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-28
    • 2013-06-06
    • 2013-04-08
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多