x轴标签的位置不在中间,见图。我希望垂直轴标签正好位于三个条形块的笔划下方。我找不到一个参数,所以解决了这个问题。有人有主意吗?
import pandas as pd
data = {
'Messwert1': [10, 5, 8],
'Messwert2': [7, 3, 6],
'Messwert3': [12, 10, 15],
'Typ': ['Annn', 'Bnnn \n kkks', 'C']
}
df = pd.DataFrame(data)
import numpy as np
import matplotlib.pyplot as plt
# Daten aus dem DataFrame extrahieren
x = df['Typ']
y1 = df['Messwert1']
y2 = df['Messwert2']
y3 = df['Messwert3']
# Balkenpositionen berechnen
bar_width = 0.2
x_pos = np.arange(len(x))
# Balkendiagramm erstellen
plt.bar(x_pos, y1, width=bar_width, label='Messwert1')
plt.bar(x_pos + bar_width, y2, width=bar_width, label='Messwert2')
plt.bar(x_pos + 2*bar_width, y3, width=bar_width, label='Messwert3')
# Achsentitel hinzufügen
plt.xlabel('Typ')
plt.ylabel('Messwerte')
# x-Achsenbeschriftung anpassen
plt.xticks(x_pos + bar_width, x, rotation='vertical', ha='right')
# Legende anzeigen
plt.legend()
# Diagramm anzeigen
plt.show()
字符串
的数据
1条答案
按热度按时间0g0grzrc1#
因为有
ha="right"
所以它们是偏移的。这意味着旋转文本的右侧将与刻度标记对齐。将其更改为ha="center"
,您将获得所需的结果。您可能还希望在plt.show()
之前添加plt.tight_figure()
,因为旋转的标签会将xlabel
推到图形区域之外。的数据