почему моя гистограмма выглядит странно на этом стохастическом графике проблемы в python? - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь написать стохастическую программу на Python для репликации броска справедливой кости (одной кости), так что эта одна игра в кости бросается 100 раз.Я намереваюсь отобразить результат бросков кубиков в виде гистограммы.

Я думал, что гистограммы имеют определенную форму n, но это то, что я получаю с кодом, который я использовал ниже.

import numpy as np
import matplotlib.pyplot as plt
x = []
for i in range(100):
    num1 = random.choice(range(1,7))
    x.append(num1)
plt.hist(x, bins=6)
plt.xlabel('dice')
plt.show()

myweirdhistogram

Кроме того, есть более простой способ построения гистограммы в python, когда у вас есть, например, возраст как [10,3,5,1] и частота в таблицекак [2,3,4,4]?Должен ли я печатать всю частоту возрастов в списке следующим образом: age = [10,10,3,3,3,5,5,5,5,1,1,1,1], прежде чем писатьпрограмма?пожалуйста, посмотрите, что я имею в виду в приведенном ниже коде:

import numpy as np
import matplotlib.pyplot as plt

plt.close()

ages = [88,88,88,88,76,76,76, 65,65,65,65,65,96,96,52,52,52,52,52,98,98,102,102,102,102]

#the frequency was = [4, 3, 5, 2, 5, 2, 4] which corresponded to the ages [88,76,65,96,52,98,102]

num_bins = 25
n, bins, patches = plt.hist(ages, num_bins, facecolor='blue')

plt.xlabel('age')
plt.ylabel('Frequency of occurence')
plt.show()

#my histogram again looks more like a bar chart. Is this because I used bins as the ages?

Пока что мне проще построить гистограмму со случайными числами, но не таблицу для меня.Вот мой второй странный вывод: mysecondweirdhistogram

1 Ответ

0 голосов
/ 27 октября 2018
>>> ages = [10,3,5,1]
>>> freqs = [2,3,4,4]

Используйте zip , чтобы связать каждый возраст с его частотой; затем используйте частоту, чтобы добавить это число в новый контейнер.

>>> q = []
>>> for a, f in zip(ages, freqs):
...     q.extend(a for _ in range(f))

>>> q
[10, 10, 3, 3, 3, 5, 5, 5, 5, 1, 1, 1, 1]
>>>

a for _ in range(f) - это генераторное выражение, которое будет выдавать f a при повторении. Метод extend потребляет (перебирает) выражение генератора. Мы обычно используем _ для значений, которые мы не собираемся использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...