The Bar- Titles are currently not exactly beneath the bars, but a little bit off to the side.
I don't really understand why, perhaps somebody can help me.
Furthermore, is it possible to change the bar colors for each "overgroup". "Messung 1! is an overgroup for example.
This is the Code:
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()
Thank you very much :)