03
Май
2020

Преобразование массивов для работы с гистограммой

Я столкнулся с небольшой проблемой при построении гистограммы в mathplot. У меня есть файл, в котором данные в одну строку разделённые через запятую. Я хочу прочесть данные и построить гистограмму но так, чтобы каждый столб был своего цвета. Но когда я читаю файл - у меня получается один массив формата [a,b,c...] Histogram же для построения, чтобы у каждого столбца был свой цвет, просто на вход [[a],[b],[c],...] Поэтому я попытался просто создать ещё один массив уже в требуемом виде код

import matplotlib.pyplot as plt
import numpy as np
from numpy import *
# data = loadtxt('Music.dat') Я читаю файл, после чтения получаю результат как в следующей строке
data =  [105, 200, 310, 99, 286]
fig, axes = plt.subplots(nrows=2, ncols=2)
ax0, ax1, ax2, ax3 = axes.flatten()    


labels = 'Grunge', 'Hip Hop', 'Metal', 'Schlager music', 'Rock'
bins = np.linspace(50, 400, 20)
colors = ['red', 'black', 'orange', 'green', 'tan']
ax1.hist([[105], [200], [310], [99], [286]], bins, density=True, histtype='bar', color=colors, 
label=labels)
ax1.legend(prop={'size': 2})
ax1.set_title('Histogram with legend')

В этом случае (вручную введённые откорректированные данные) у меня получается ровно то, что я хочу - 5 столбцов разного цвета.

Я попытался преобразовать массив следующим образом

data_mod=np.zeros(shape=(5,1)) 
for x in range (0, 5):
   data_mod[x]=[data[x]]

Но при выведении массива на экран print(data_mod) я получаю следующий результат:

[[105.]
 [200.]
 [310.]
 [ 99.]
 [286.]]
[105. 200. 310.  99. 286.]

т.е. как я понимаю, массив автоматически преобразуется.

В связи с этим мой вопрос: как мне максимально безболезненно преобразовать [105, 200, 310, 99, 286] в [[105] [200] [310] [ 99] [286]] и почему не работает мой метод? Возможно есть другой метод, заставить гистограмм покрасить каждый столбец в свой цвет, без столь неудобного преобразования?

Источник: https://ru.stackoverflow.com/questions/1119580/%D0%9F%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%BE%D0%B2-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B3%D0%B8%D1%81%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BE%D0%B9

Тебе может это понравится...

Добавить комментарий