Я хочу построить гистограмму для числовых данных и гистограмму для категориальных данных. Я классифицировал тип данных, уже сохраненный в types
.
Я не уверен, как поместить plt.hist()
и plt.bar()
в цикл for, чтобы две гистограммы (одна для возраста и другая для сохранения) отображались вместе рядом. То же самое относится и к категориальным данным, я хочу 2 гистограмму для 2 категориальных данных (пол и работа). Код, способный рассчитывать частоту данных также для построения гистограммы.
Это означает, что в конце у меня будет 4 графика, 2 - гистограмма и 2 - гистограмма, которые будут отображаться все вместе рядом.
Пожалуйста, помогите мне с этим вопросом. Любая помощь будет оценена! Заранее спасибо.
import numpy as np
from scipy import stats
# first data is age
# 2nd data is gender
# third data is saving
# 4th data is job
data = np.array([[11, "male",1222,"teacher"],[23,"female",333,"student"],
[15,"male",542,"security"],[23,"male",4422,"farmer"],[25,"female",553,"farmer"],
[22, "male", 221, "teacher"],[27, "male", 333, "agent"],[11, "female", 33, "farmer"]])
# type of the data above
types = ["num","cat","num","cat"]
idx1 = []
idx2 = []
for index, _type in enumerate(types):
if _type == 'num':
idx1.append(index)
else:
idx2.append(index)
mean = []
std = []
for i in idx1:
mean.append(np.mean(data[:,i].astype("float32")))
std.append(np.std(data[:,i].astype("float32")))
print("mean: {}".format(mean))
print("std: {}".format(std))
mode = []
for i in idx2:
mode.append(stats.mode(data[:,i]))
print("mode: {}".format([sub[0][0] for sub in mode]))