Я новичок в этом, но мне удалось собрать код, чтобы сделать простую гистограмму из CSV. У меня есть два набора данных, и я могу построить один из них нормально, но при построении другого набора (который является почти идентичным набором данных) он выглядит неправильно. Данные в основном представляют собой два столбца, один со значениями частоты, а другой - с текстом. Текст представляет собой диапазон ячеек для этой частоты и записывается как [10. 20.]. Чтобы построить эти данные, я считываю их как строку и беру первое значение, преобразовывая его в число с плавающей запятой (см. Код), который отлично работает, давая мне два списка значений !!
Затем я беру эти два списка, одну частоту и одну ячейку, и строю их, но в итоге получаются очень узкие полосы (в основном линии) и частота, где значения отображаются как 1e ^ 7 (т.е. 3, а не 30000000), однако ось x отображается нормально.
мой код:
import csv
import numpy as np
import matplotlib.pyplot as plt
inputfile = 'filename'
values = []
bins = []
fh = open(inputfile, 'r+')
for line in fh:
values.append(float(line.split(',')[0]))
bins.append(float(line.split(',')[1].replace('[','').replace(']','').strip().split(' ')[0]))
ticks = np.arange(0, 105000, 5000)
plot = plt.bar(bins, values, color='b', alpha=1, width=1)
plt.xlabel('distance (m)')
plt.ylabel('Frequency')
plt.xticks(ticks, rotation=90)
plt.show()
Я бы опубликовал фотографию своего сюжета, но у меня недостаточно очков репутации.
Другие мои данные почти идентичны этим и отлично работают.
Любая помощь приветствуется,
Спасибо