Группировка столбцов по спискам источников на гистограмме с помощью matplotlib в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Группировка столбцов по спискам источников на гистограмме с помощью matplotlib в Python

Сообщение Anonymous »

У меня есть некоторые замеры твердости сталей после закалки в различных охлаждающих жидкостях: воде, масле и воздухе (просто оставляем остывать). Измерения организованы следующим образом: Дикт, называемый Coolant_data, содержит три пары строка:список. Каждая струна — это теплоноситель, а каждый список — это измерения от него. Внутри каждого списка есть три списка, содержащие все измерения трех образцов.
Я рассчитал средние значения и стандартные отклонения измерений для каждого образца и поместил их в Coolant_samples и Coolant_samples_stds соответственно. Я хочу отобразить все данные из Coolant_samples с Coolant_samples_stds в качестве полос ошибок на гистограмме с использованием plt. Пока все просто.
У меня возникли проблемы вот с чем: столбцы в каждом списке должны быть смежными и находиться в одной группе. Это означает, что группы должны быть организованы по охлаждающей жидкости, причем каждая группа содержит три столбца для средств измерений трех образцов.
На данный момент у меня есть следующий код:

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

# Hardness data [HRC]
coolant_data = {
"Water": [[27.0, 29.0, 30.0, 28.5, 27.5], [21.5, 29.0, 28.5, 21.0, 30.0], [25.0, 22.0, 28.0, 31.0, 26.0]],
"Oil": [[11.5, 10.0, 11.5, 9.5, 4.5], [11.0, 12.0, 12.0, 11.0, 12.0], [9.5, 10.0, 11.0, 10.5, 11.0]],
"Air": [[2.5, 3.0, 3.0, 3.5, 1.0], [2.0, 1.5, 3.0, 4.0, 3.5], [2.0, 1.5, 3.0, 2.0, 1.5]]}

# Calculate means and standard deviations
coolant_samples = {coolant: [np.mean(sample) for sample in measurements] for coolant, measurements in coolant_data.items()}
coolant_sample_stds = {coolant: [np.std(sample) for sample in measurements] for coolant, measurements in coolant_data.items()}

# Plot the hardness data as a bar chart with error bars for each sample and the mean
plt.figure()
plt.title("Hardness of Samples After Quenching in Different Coolants")
plt.ylabel("Hardness [HRC]")
labels = coolant_samples.keys()

# Create the bars with grouped x-axis values
x = range(len(labels))
width = 0.25  # Width of each bar
plt.bar_label(plt.bar([i - width for i in x], coolant_samples['Water'], width, label='Sample 1', yerr=coolant_sample_stds['Water']), padding=3)
plt.bar_label(plt.bar([i for i in x], coolant_samples['Oil'], width, label='Sample 2', yerr=coolant_sample_stds['Oil']), padding=3)
plt.bar_label(plt.bar([i + width for i in x], coolant_samples['Air'], width, label='Sample 3', yerr=coolant_sample_stds['Air']), padding=3)

plt.xticks(x, labels)
plt.ylim(bottom=0, top=35)
plt.legend(loc='upper left', ncols=3)
plt.show()
И я получаю такой график:
[img]https:/ /i.sstatic.net/BKAm3qzu.png[/img]

Как видите, столбцы сгруппированы неправильно. Я был бы очень признателен за помощь в этом вопросе.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Группировка столбцов с использованием matplotlib.pyplot
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Редактирование определенных меток в гистограмме с накоплением с помощью matplotlib
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Редактирование определенных меток в гистограмме с накоплением с помощью matplotlib
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Вложенные циклы Python по двум спискам в неправильном порядке в приложенииstreamlit
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Цикл for по нескольким спискам для выполнения одного оператора в Python 3
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

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