У меня есть некоторые замеры твердости сталей после закалки в различных охлаждающих жидкостях: воде, масле и воздухе (просто оставляем остывать). Измерения организованы следующим образом: Дикт, называемый 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]
Как видите, столбцы сгруппированы неправильно. Я был бы очень признателен за помощь в этом вопросе.
Когда я создаю трехмерную гистограмму с помощью Matplotlib и изменяю пределы оси Z с помощью ax.set_zlim(newMin, newMax), часть гистограмм ниже нового минимального значения оси Z появляется над x и y ось. Я хотел бы обеспечить, чтобы оси x и y...
Я хочу отредактировать проект Linux posix на C++17 под Windows 11 в QtCreator 13.1 и воспользоваться преимуществами clangd и clang-tidy (LLVM версии 17.0.1). Мне не обязательно уметь компилировать, я делаю это под Linux. Для этой цели я использую...
Я хочу отредактировать проект Linux posix на C++17 под Windows 11 в QtCreator 13.1 и воспользоваться преимуществами clangd и clang-tidy (LLVM версии 17.0.1). Мне не обязательно уметь компилировать, я делаю это под Linux. Для этой цели я использую...
Предыстория
Проект A
Устаревшая система
Полнофункциональный сервер Django на основе языка шаблонов
Использование сеансов для аутентификации
Python версии 3.8
Django версии 3.2
Проект B
Новый проект
Django на основе JSON Сервер RESTful API...