У меня есть некоторые замеры твердости сталей после закалки в различных охлаждающих жидкостях: воде, масле и воздухе (просто оставляем остывать). Измерения организованы следующим образом: Дикт, называемый 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]
Как видите, столбцы сгруппированы неправильно. Я был бы очень признателен за помощь в этом вопросе.
У меня есть некоторые замеры твердости сталей после закалки в различных охлаждающих жидкостях: воде, масле и воздухе (просто оставляем остывать). Измерения организованы следующим образом: Дикт, называемый Coolant_data, содержит три пары строка:список. Каждая струна — это теплоноситель, а каждый список — это измерения от него. Внутри каждого списка есть три списка, содержащие все измерения трех образцов. Я рассчитал средние значения и стандартные отклонения измерений для каждого образца и поместил их в Coolant_samples и Coolant_samples_stds соответственно. Я хочу отобразить все данные из Coolant_samples с Coolant_samples_stds в качестве полос ошибок на гистограмме с использованием plt. Пока все просто. У меня возникли проблемы вот с чем: столбцы в каждом списке должны быть смежными и находиться в одной группе. Это означает, что группы должны быть организованы по охлаждающей жидкости, причем каждая группа содержит три столбца для средств измерений трех образцов. На данный момент у меня есть следующий код: [code]# 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() [/code] И я получаю такой график: [img]https:/ /i.sstatic.net/BKAm3qzu.png[/img]
Как видите, столбцы сгруппированы неправильно. Я был бы очень признателен за помощь в этом вопросе.
Я пытаюсь написать программу, которая представляет данные из нескольких файлов CSV. Ось X соответствует каждому году, и потенциально в каждом году может быть 6 разных столбцов. Проблема в том, что некоторые столбцы имеют значение
Я следую этому руководству/примеру для создания составных гистограмм, однако в моем случае я представляю различные типы заявок в службу поддержки, которые получают определенные технические специалисты. Таким образом, не все типы всегда присутствуют,...
Я следую этому руководству/примеру для создания составных гистограмм, однако в моем случае я представляю различные типы заявок в службу поддержки, которые получают определенные технические специалисты. Таким образом, не все типы всегда присутствуют,...
У меня есть список беспорядочных строк, описывающих один и тот же адрес. Я хочу извлечь одно название улицы из списка с помощью регулярных выражений. У меня есть еще один список, упорядоченный в соответствии с моими предпочтениями: какой...
Если это повторяющийся вопрос, извините. Я потратил целый час, пытаясь найти ответ, и безуспешно проверил пару теорий. Не публикуя весь код, над которым я работаю, я просто опубликую фрагмент.
По сути, мне нужно распечатать все операторы цикла for...