如何将栏标题置于栏下方并更改栏颜色?

问题描述 投票:0回答:0

enter image description here

栏标题目前并不完全位于栏下方,而是稍微偏向一侧。

我不太明白为什么,也许有人可以帮助我。

此外,是否可以更改每个“超组”的条形颜色。 “例如,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()

非常感谢:)

colors bar-chart title titlebar
© www.soinside.com 2019 - 2024. All rights reserved.