Визуализация данных с помощью четких столбцов на гистограмме?Python

Программы на Python
Ответить
Anonymous
 Визуализация данных с помощью четких столбцов на гистограмме?

Сообщение Anonymous »

Я новичок в Python и визуализации данных, но мне предстоит предстоящая конференция, на которой я представлю свои исследования, чтобы мне не помешала помощь, чтобы сделать этот график более полезным.
Я создаю гистограмму, в которой все столбцы перекрываются, но даже если для столбцов понижена прозрачность, мне это все равно кажется беспорядком. Я подумал, что если бы я мог сделать сами столбцы прозрачной заливкой, а цвет края - разными цветами для разных наборов данных, это было бы легче видеть?
Но я могу только понять, как установить общую прозрачность на 0 (включая цвет края, чтобы нигде не было полосы) или заполнить ее белым (что по-прежнему затрудняет просмотр цветов, сложенных сзади - прикреплено).
Как я могу сделать эту прозрачную полосу с цветным контуром? Это вообще лучший способ показать это?

Код: Выделить всё

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
import seaborn as sns
import pandas as pd

# import excel file
excel_file_path = '/content/Chondrule Sizes (comparison).xlsx'

# read excel file
df_excel = pd.read_excel(excel_file_path, sheet_name='All Diameters (raw)')

# select data
data_for_plot_8 = df_excel['MIL 15322 (EL3)']
data_for_plot_7 = df_excel['QUE 94594 (EL3)']
data_for_plot_6 = df_excel['ALH 85119 (EL3)']
data_for_plot_5 = df_excel['MAC 88180 (EL3)']
data_for_plot_4 = df_excel['PCA 91020 (EL3)']
data_for_plot_3 = df_excel['ALH 84170 (EH3)']
data_for_plot_2 = df_excel['PCA 91085 (EH3)']
data_for_plot_1 = df_excel['PCA 91238 (EH3)']

# create plot
plt.figure(figsize=(12, 7))
bins = np.linspace(0, 3300, 67)

# plot histograms - probability density
plt.hist(data_for_plot_1, bins, alpha=0.3,label='PCA 91238 (EH3)', linewidth=1.5, color='white', edgecolor='red', density=True)
plt.hist(data_for_plot_2, bins, alpha=0.3,label='PCA 91085 (EH3)', linewidth=1.5, color='white',edgecolor='darkorange', density=True)
plt.hist(data_for_plot_3, bins, alpha=0.3,label='ALH 84170 (EH3)', linewidth=1.5, color='white',edgecolor='gold', density=True)
plt.hist(data_for_plot_4, bins, alpha=0.3,label='PCA 91020 (EL3)', linewidth=1.5, color='white',edgecolor='yellow', density=True)
plt.hist(data_for_plot_5, bins, alpha=0.3,label='MAC 88180 (EL3)', linewidth=1.5, color='white',edgecolor='green', density=True)
Data with colored bars (original)plt.hist(data_for_plot_6, bins, alpha=0.3,label='ALH 85119 (EL3)', linewidth=1.5, color='white',edgecolor='lightseagreen', density=True)
plt.hist(data_for_plot_7, bins, alpha=0.3,label='QUE 94594 (EL3)', linewidth=1.5, color='white',edgecolor='deepskyblue', density=True)
plt.hist(data_for_plot_8, bins, alpha=0.3,label='MIL 15322 (EL3)', linewidth=1.5, color='white',edgecolor='indigo', density=True)

# change y-axis to percent instead of probability density
bin_width = bins[1] - bins[0]
def to_percent(y, position):
return f"{y * bin_width * 100:.0f}%"
plt.gca().yaxis.set_major_formatter(mtick.FuncFormatter(to_percent))

# plot format
plt.legend(loc='upper right')
plt.xlabel('Diameter (µm)')
plt.ylabel('Percent %')
plt.title('Size Frequency Distribution of Chondrule Diameters (µm)')
plt.grid(True, linestyle='--', alpha=0.6)
plt.show()
Данные с цветными полосами (исходные)
Данные с белыми полосами и цветным контуром

Подробнее здесь: https://stackoverflow.com/questions/799 ... -histogram
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»