Maptloblib, Adjust_text und Errorbar
Posted: 23 Dec 2024, 13:50
Ich verwende „adjust_text“, um Text richtig auf dem Plot zu platzieren.
Ich möchte keinen Text auf den Verbindungslinien zwischen den Punkten oder den Fehlerbalken platziert haben.
Meine derzeit beste Version des Beispielcodes ist:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
fig, ax = plt.subplots()
x = np.linspace(0, 1, 50) * np.pi
y = np.sin(x)
errbar_container = ax.errorbar(x, y, xerr=0.25, yerr=0.05)
texts = []
for idx in range(0, len(x),2):
texts.append(
ax.annotate(
idx,
xy=(x[idx], y[idx]),
size="large",
zorder=100,
)
)
adjust_text(
texts,
x=x,
y=y,
expand=(2, 2),
objects=[
*[mpl.transforms.Bbox(seg) for seg in errbar_container.lines[-1][0].get_segments()],
*[mpl.transforms.Bbox(seg) for seg in errbar_container.lines[-1][1].get_segments()],
],
arrowprops=dict(arrowstyle="->", color="red"),
)
plt.show()
Ich habe auch versucht, autoalign, only_move zu verwenden, um z.B. Verschiebung nur in x- Richtung, wie hier erwähnt, aber die Optionen scheinen ebenfalls ignoriert zu werden.
Wie stelle ich sicher, dass kein Text auf den Fehlerbalken und der Verbindung platziert wird? Zeilen?
Ich möchte keinen Text auf den Verbindungslinien zwischen den Punkten oder den Fehlerbalken platziert haben.
Meine derzeit beste Version des Beispielcodes ist:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
fig, ax = plt.subplots()
x = np.linspace(0, 1, 50) * np.pi
y = np.sin(x)
errbar_container = ax.errorbar(x, y, xerr=0.25, yerr=0.05)
texts = []
for idx in range(0, len(x),2):
texts.append(
ax.annotate(
idx,
xy=(x[idx], y[idx]),
size="large",
zorder=100,
)
)
adjust_text(
texts,
x=x,
y=y,
expand=(2, 2),
objects=[
*[mpl.transforms.Bbox(seg) for seg in errbar_container.lines[-1][0].get_segments()],
*[mpl.transforms.Bbox(seg) for seg in errbar_container.lines[-1][1].get_segments()],
],
arrowprops=dict(arrowstyle="->", color="red"),
)
plt.show()
Ich habe auch versucht, autoalign, only_move zu verwenden, um z.B. Verschiebung nur in x- Richtung, wie hier erwähnt, aber die Optionen scheinen ebenfalls ignoriert zu werden.
Wie stelle ich sicher, dass kein Text auf den Fehlerbalken und der Verbindung platziert wird? Zeilen?