栏标题目前并不完全位于栏下方,而是稍微偏向一侧。
我不太明白为什么,也许有人可以帮助我。
此外,是否可以更改每个“超组”的条形颜色。 “例如,Messung 1! 是一个超群。
这是代码:
import matplotlib.pyplot as plt
import numpy as np
font_path = 'Bitsream Charter Font.otf'
# Setze die Schriftart für `matplotlib`
plt.rcParams['font.family'] = 'Charter'
plt.rcParams['font.serif'] = 'Charter'
plt.rcParams['font.sans-serif'] = 'Charter'
plt.rcParams['font.cursive'] = 'Charter'
plt.rcParams['font.monospace'] = 'Charter'
def create_grouped_bar_chart():
# Daten für die Balken
groups = 9
bar_width = 0.08 # Verringere die Balkenbreite
gap = 0.08 # Verringere das Lückenmaß
x = np.arange(groups)
values1 = [3.5, 2, 3, 4, 2.5, 3, 1.5, 2, 1] # Werte für die ersten 4 Balken
values2 = [0.5, 1, 0.7, 1.5, 1.2, 1.2, 0.8, 1.3, 0.9] # Werte für die nächsten 4 Balken
std_dev1 = [0.2, 0.3, 0.4, 0.2, 0.15, 0.3, 0.25, 0.2, 0.1] # Standardabweichung für die ersten 4 Balken
std_dev2 = [0.1, 0.2, 0.3, 0.15, 0.2, 0.25, 0.2, 0.1, 0.12] # Standardabweichung für die nächsten 4 Balken
# Set the DPI value for the figure (e.g., 150 or 300)
dpi = 500
# Set the font family to Charter
plt.rcParams['font.family'] = 'Charter'
# Set the font size to 7
plt.rcParams['font.size'] = 11
# Größe des Diagramms anpassen
figsize = (10, 6) # Beispiel: 10 Zoll Breite, 6 Zoll Höhe
# Balkendiagramm erstellen
fig, ax = plt.subplots(figsize=figsize, dpi=dpi) # Pass the figsize parameter here
# Ersten Balken jeder Gruppe mit Streifen versehen (hatch)
bar1 = ax.bar(x - bar_width*2 - gap, values1, bar_width, label='Mit IPTG', edgecolor='black', color='lightgreen', yerr=std_dev1, capsize=3)
bar2 = ax.bar(x - bar_width - gap/2, values2, bar_width, label='Ohne IPTG', hatch='///', edgecolor='black', color='white', yerr=std_dev2, capsize=3)
# Achsenbeschriftungen
# Verschiebe die x-Achsenbeschriftung nach unten
ax.text((x[-1] - x[0]) / 2, -1.7, 'Messungen', ha='center')
plt.ylabel('Fluoreszenz')
# Achsenbereiche festlegen
plt.ylim(0, 6)
plt.yticks(np.arange(0, 7, 1))
# X-Achse beschriften
ax.set_xticks(x) # Nur die Positionen der Ticks festlegen
ax.set_xticklabels(['Klon 1', 'Klon 2', 'Klon 3', 'Klon 1', 'Klon 2', 'Klon 3', 'Klon 1', 'Klon 2', 'Klon 3'], ha='center') # Beschriftungen für die Ticks festlegen und ha='center' für die horizontale Ausrichtung hinzufügen
# Überschriften für die Gruppen hinzufügen
ax.text((x[0] + x[2]) / 2, -1, 'Messung 1', ha='center')
ax.text((x[3] + x[5]) / 2, -1, 'Messung 2', ha='center')
ax.text((x[6] + x[8]) / 2, -1, 'Messung 3', ha='center')
# Zusätzliche Überschrift für die Gruppen zusammenfassend hinzufügen
# ax.text((x[0] + x[5]) / 2, -1.5, 'Zusammengefasste Gruppen', ha='center')
# Titel und Legende anzeigen
plt.title('Messungen des Originalkonstrukts nach Retransformation')
plt.legend()
# Diagramm anzeigen
plt.show()
create_grouped_bar_chart()
非常感谢:)