У меня есть пара вопросов, и я пытался, но я не мог решить их.Позвольте мне помочь.
Это вопрос.Есть неизвестная гистограмма, и я хочу угадать гистограмму (не точная гистограмма в порядке).
Я получил некоторую информацию о гистограмме.Предоставленная информация: мин., Макс., Размер, среднее, процентиль (25%, 50%, 75%)
- Я хочу знать, как получить график, удовлетворяющий этим условиям.
- Почему этот код не работает ??
Спасибо.
----------- Это то, что я пытался -------------
import pandas as pd
import numpy as np
import random
import matplotlib.pyplot as plt
class R_distribution():
def __init__(self, min, max, size, mean, Q1, Q2, Q3):
self.min = min
self.max = max
self.size = size
self.error = 10
self.mean = mean
self.median = Q2
self.Q1 = Q1
self.Q3 = Q3
# df = pd.DataFrame(np.random.uniform(self.min, self.max, size=self.size))
df = pd.DataFrame(np.random.randn(size)*(max-1) + min)
_ = df.describe()
standard = {'mean': mean, '50%': Q2, '25%': Q1, '75%': Q3}
loop_switch = []
i = 0
while len(set(loop_switch)) < 4:
for s in standard.keys():
if float(_.loc[s]) >= standard[s] - self.error and float(_.loc[s]) <= standard[s] + self.error:
loop_switch.append(s)
else:
# df = pd.DataFrame(np.random.uniform(self.min, self.max, size=self.size))
df = pd.DataFrame(np.random.randn(size) * (max - 1) + min)
i += 1
if i%1000 == 0:
print(str(i)+"th loop")
print(set(loop_switch))
print(df)
if __name__ == '__main__':
a = R_distribution(min=1.0, max=70.0, size=15, mean=13.53, Q1=2.00, Q2=3.50, Q3=10.00)