- Полоски минимальной и максимальной ошибок не отображаются для каждого поля, и
- При добавлении горизонтального дрожания создается один пустой белый круг с черным контуром, и я бы хотел, чтобы это исчезло.
Код: Выделить всё
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