У меня есть текстовый файл, включающий 8 функций и 1 класс.Данные моего файла (data.txt
):
1,1,3,2,1,1,1,3,HIGH
1,1,3,1,2,1,1,3,HIGH
1,1,1,1,3,3,1,2,HIGH
1,3,2,1,3,3,3,3,HIGH
1,3,1,2,3,1,2,1,HIGH
2,3,1,2,1,2,2,1,HIGH
2,2,2,2,2,1,2,3,HIGH
2,2,1,1,1,2,2,3,HIGH
3,2,1,3,1,3,3,3,HIGH
3,2,1,2,2,3,3,2,HIGH
В приведенном выше файле первые 8 столбцов являются функциями.Они помечены числом, которое может быть 1, 2 или 3. Последний столбец - это имя класса (HIGH
).Теперь я хочу построить эти функции на основе номеров тегов.Я могу сделать это для 3 первого столбца с помощью этого кода:
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv('data.txt', header=None)
# Features are : A,B,C,...,H
df.columns = ['A', 'B','C', 'D', 'E', 'F', 'G', 'H', 'class']
X = df.ix[:, 0:8].values
y = df.ix[:, 8].values
kind = ['barstacked']
deg = ['HIGH']
pos = ['left','right','mid']
col = ['r','b','y']
with plt.style.context('seaborn-whitegrid'):
plt.figure(figsize=(8, 6))
for j in range(0,3):
for i in range(1):
plt.hist(X[y == deg[i], j],
label=deg[i],
bins=30,
alpha=0.6, histtype=kind[i], align=pos[j], color=col[j])
plt.tick_params(axis='both', which='major', labelsize=17)
plt.xlim(0.75, 3.25)
plt.tight_layout()
plt.savefig("figure.png" , format='png', dpi=700)
plt.show()
Вот результат:
Однако я могНе отображайте остальные 5 столбцов, потому что я не знал, как разместить их рядом друг с другом, поскольку есть только 3 варианта выравнивания (left
, mid
и right
).Я смотрю на гистограмму для всех 8 функций , которая разделяет элементы на основе номера тега.График такой: