- Für eine Zeitreihe müssen die Daten für die Achse richtige Datums- / Uhrzeitobjekte sein , keine Zeichenfolgen.
- Verwenden Sie
pandas.to_datetime
diese datetime
Option , um Spalten in dtype zu konvertieren.
- Ermöglicht einzelne oder mehrere Standorte
ymin
& ymax
werden als spezifischer y-Wert angegeben, nicht als Prozent vonylim
- Wenn Sie
axes
mit etwas wie referenzieren fig, axes = plt.subplots()
, wechseln Sie plt.xlines
zuaxes.xlines
plt.plot()
& sns.lineplot()
from datetime import datetime
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use('seaborn')
df = pd.DataFrame(index=pd.bdate_range(datetime(2020, 6, 8), freq='1d', periods=500).tolist())
df['v'] = np.logspace(0, 1, num=len(df))
plt.plot('v', data=df, color='magenta')
y_min = df.v.min()
y_max = df.v.max()
plt.vlines(x=['2020-07-14', '2021-07-14'], ymin=y_min, ymax=y_max, colors='purple', ls='--', lw=2, label='vline_multiple')
plt.vlines(x=datetime(2021, 9, 14), ymin=4, ymax=9, colors='green', ls=':', lw=2, label='vline_single')
plt.legend(bbox_to_anchor=(1.04, 0.5), loc="center left")
plt.show()
df.plot()
df.plot(color='magenta')
ticks, _ = plt.xticks()
print(f'Date format is pandas api format: {ticks}')
y_min = df.v.min()
y_max = df.v.max()
plt.vlines(x=['2020-07-14', '2021-07-14'], ymin=y_min, ymax=y_max, colors='purple', ls='--', lw=2, label='vline_multiple')
plt.vlines(x='2020-12-25', ymin=y_min, ymax=8, colors='green', ls=':', lw=2, label='vline_single')
plt.legend(bbox_to_anchor=(1.04, 0.5), loc="center left")
plt.show()
Paketversionen
import matplotlib as mpl
print(mpl.__version__)
print(sns.__version__)
print(pd.__version__)
[out]:
3.3.1
0.10.1
1.1.0