Boxplot Image Я пытаюсь построить различные значения фракционирования изотопов в виде коробчатой диаграммы. У меня есть большая часть кода, но у меня есть две основные проблемы: 1) полосы минимальной и максимальной ошибок не отображаются для каждого поля и 2) добавление горизонтального дрожания создает один пустой белый круг с черным контуром, и я бы хотел, чтобы это исчезло. Более конкретно, минимальная планка погрешности отсутствует для первого поля, а максимальная погрешность отсутствует для третьего и четвертого блоков. Кроме того, вы можете увидеть пустые черные кружки на третьем и четвертом графиках. Во всяком случае, именно здесь должны достигаться планки погрешностей. Я прикреплю изображение вывода ниже и прикреплю сюда свой код:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_excel("fractionation_data.xlsx")
# df = pd.read_csv("fractionation_data.csv")
#Ensure fractionation values are numeric
df["Fractionation"] = pd.to_numeric(df["Fractionation"], errors="coerce")
#Drop rows with missing values
df = df.dropna(subset=["Plant", "Fractionation"])
#Get unique plant categories (keeps spreadsheet order)
plants = df["Plant"].unique()
#Create a list of fractionation arrays, one per plant
data = [
df[df["Plant"] == plant]["Fractionation"].values
for plant in plants
]
plt.figure(figsize=(8, 6))
plt.boxplot(data, labels=plants)
#Overlay individual points
for i, plant_data in enumerate(data, start=1):
# Add slight horizontal jitter so points don’t overlap
x = np.random.normal(i, 0.04, size=len(plant_data))
plt.plot(x, plant_data, 'o')
plt.xlabel("Algae Type")
plt.ylabel("Fractionation (‰)")
plt.title("Fractionation Values by Algae Type")
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
Подробнее здесь: https://stackoverflow.com/questions/798 ... nts-issues