Создание гистограммы с выбранными параметрами в данных с помощью python (pandas, matplotlib) - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть этот CSV-файл, который я импортирую как фрейм данных, используя pandas с: df_read = pd.read_csv(path_file)

my current dataframe

Я заинтересован в создании гистограмма, которая могла бы помочь мне изучить распределение значений для каждого отношения, но разделенных по цветам. Пример: гистограмма, которая считывает только значения зеленого цвета и подсчитывает, сколько значений ratio_val между 0,9 и 1, 0,8 и 0,899 и go включено.

Таким образом, я мог понять концентрацию значений, которые интересны для анализа, который я сейчас делаю.

Ответы [ 5 ]

1 голос
/ 14 апреля 2020

Это работа для plt.hist () . Если вы создадите список, содержащий ограничения для каждого столбца в вашей гистограмме, например, [0, 0.1, 0.2 , ... , 0.9, 1] в вашем случае, вы можете просто ввести этот список «бинов» вместе со списком значений ratio_hist, и он будет обрабатывать сортировку по сам. Чтобы отсортировать значения, соответствующие строке, где цвет зеленый, вы можете использовать маскированный массив или генератор списков.

#By using masked array
ratio_values = df_read[:,3]
colors = df_read[:,4]
ratio_values = np.ma.MaskedArray(ratio_values, colors != 'green')

#By using a list generator
df = dr_read.transpose()
ratio_values = [df[3,i] for i in range(len(df[3])) if df[4,i] == 'green']

#Make the histogram
bins = [0, 0.1, 0.2, ..., 0.9, 1]
plt.hist(ratio_values, bins)
plt.show()

надеюсь, что это поможет:)

1 голос
/ 14 апреля 2020

Вы можете использовать метод pandas.Series.hist() и изменить параметр bin, чтобы установить желаемый диапазон. Если вам нужны только значения зеленого цвета, вы можете сделать это:

df[df['color']=='green'].hist()

Я не установил значение корзины, потому что считаю, что лучше попытаться увидеть результаты!

1 голос
/ 14 апреля 2020

Если вам нужен кадр данных, но только строки с зеленым цветом:

df_green = df_read[df_read['color']=='green']

Если вы хотите, чтобы все гистограммы для столбцов цифры c в этом кадре данных:

df_green.hist()

Если вы хотите увидеть его для всех цветов, вы можете перебирать уникальные значения.

1 голос
/ 14 апреля 2020

Чтобы выбрать строки, значение столбца которых равно скаляру, some_value, используйте ==:

df.loc[df['column_name'] == some_value]

Чтобы создать гистограмму, вы можете сделать это легко, просто Посмотрите на matplotlib.pyplot.hist , вы можете изменить корзины, как вы хотите. Просто проверьте этот пример .

0 голосов
/ 15 апреля 2020

РЕШЕНИЕ: Импортируйте matplotlib для создания графика. Pandas собирается создать массив, который Matplotlib может читать Заинтересованы в графике.

df = df_read[['ratio_text','ratio_image', 'ratio_hist', 'ratio_sub', 'color']]

Создайте цветной фильтр (в данном случае для зеленого) и создайте массив для гистограммы.

df[df['color']=='green'].hist()

Показать все графики ( Да, только эта команда выполнит эту работу)

plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...