#python #statistics #scipy.stats
#python #Статистика #scipy.stats
Вопрос:
итак, я пытаюсь построить равномерное распределение, используя scipy.stats, но сталкиваюсь с этой ошибкой, связанной с преобразованием формы, не мог бы кто-нибудь, пожалуйста, сказать мне, почему это происходит / как должен выглядеть мой код, спасибо.
Полный код и трассировка ниже:
# UNIFORM DISTRIBUTION:
from scipy.stats import uniform
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)
n = 10 # total data number
x = list(range(0, n 1))
# create a list of values that follow uniform distribution
r = uniform.rvs(size=1000)
ax.vlines(x, 0, r, colors = "blue")
plt.show()
ПОЛНАЯ ТРАССИРОВКА:
Трассировка ошибки значения (последний последний вызов) в 12 # создайте список значений, которые соответствуют равномерному распределению 13 r = uniform.rvs(size = 1000) —> 14 ax.vlines(x, 0, r, colors = «blue») 15 plt.show() 16
matplotlib_init_.py in inner(ax, данные, * аргументы, ** kwargs) 1436 def inner(ax, * аргументы, данные=Нет, ** kwargs): 1437, если данных нет: -> 1438 return func(ax, *map(sanitize_sequence, аргументы), **kwargs)1439 1440 привязка = new_sig.bind(ax, * аргументы, ** kwargs)
matplotlibaxes_axes.py в vlines(self, x, ymin, ymax, цвета, стили линий, метки, ** kwargs)
1257 masked_verts[:, 0, 1] = ymin 1258
masked_verts[:, 1, 0] = x -> 1259 masked_verts[:, 1, 1] = ymax 1260 1261строки = mcoll.LineCollection(masked_verts, цвета=цвета,numpymacore.py в setitem(self, indx, value) 3378 если _mask — это nomask: 3379 # Задайте данные, тогда маска -> 3380 _data[indx] = dval3381 если mval не является nomask: 3382 _mask = self._mask = make_mask_none(self.shape, _dtype)
Ошибка значения: не удалось передать входной массив из формы (1000) в форму (11)
Ответ №1:
Вы пытаетесь построить график x
с размером n=10
и r
с размером size=1000
. Они должны быть одинакового размера.
import numpy as np
import scipy.stats as sps
import matplotlib.pyplot as plt
n = 1000
x = range(n)
# define the distribution
# by default [0,1]
# https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.uniform.html
dist = sps.uniform()
# generate n random variates
r = dist.rvs(n)
plt.plot(x, r)