Ich möchte meine Boxplots gleichmäßig über die x-Achse verteilen. Der folgende Code generiert eine Figur, bei der die beiden Boxplots dicht beieinander liegen. In generate möchte ich, dass der Code die Boxplots gleichmäßig verteilt, unabhängig von der Anzahl der Boxplots (in diesem Beispiel gibt es nur zwei, aber im Allgemeinen gibt es viele).Boxplots gleichmäßig verteilt
import matplotlib.pyplot as plt
statistic_dict = {0.40000000000000002: [0.36003616645322273, 0.40526649416305677, 0.46522159350924536], 0.20000000000000001: [0.11932912803730165, 0.23235825966896217, 0.12380728472472625]}
def draw_boxplot(y_values, x_values, edge_color, fill_color):
bp = plt.boxplot(y_values, patch_artist=True, positions=x_values)
for element in ['boxes', 'whiskers', 'fliers', 'medians', 'caps']:
plt.setp(bp[element], color=edge_color)
plt.xlabel("x label ")
plt.ylabel("y label ")
plt.title("Title")
for patch in bp['boxes']:
patch.set(facecolor=fill_color)
y_values = statistic_dict.values()
x_values = statistic_dict.keys()
draw_boxplot(y_values, x_values, "skyblue", "white")
plt.savefig('fileName.png', bbox_inches='tight')
plt.close()
plt.gca() .autoscale() funktioniert! plt.gca(). Margins (x = 0.2) generiert Fehler, ValueError: mehr als zwei Argumente wurden angegeben – user58925
Das wäre, weil Sie eine alte Version von Matplotlib verwenden. Ich kann keine gültige Lösung für eine ältere Version geben. – ImportanceOfBeingErnest