9

これが私のコードです:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime
import numpy as np
fig, ax = plt.subplots(1,1)
sample_dates = np.array([datetime.datetime(2000,1,1), datetime.datetime(2001,1,1)])
sample_dates = mdates.date2num(sample_dates)
plt.vlines(x=sample_dates, ymin=0, ymax=10, color = 'r')
ax.xaxis.set_major_locator(mdates.YearLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d.%m.%y'))
plt.show()

x 軸上の特定の日付に 2 本の赤い線をプロットします。ここで、すべての行にテキストを追加したいと思います。テキストは線と平行にする必要があります。どこから始めればよいですか?

4

1 に答える 1

18

Matplotlibtext関数を使用して、プロットにテキストを描画できます。設定できるパラメータがたくさんあります。こちらのドキュメントと例を参照してください

以下は、行に平行なテキストの例です。

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime
import numpy as np
from matplotlib.pyplot import text

fig, ax = plt.subplots(1,1)
sample_dates = np.array([datetime.datetime(2000,1,1), datetime.datetime(2001,1,1)])
sample_dates = mdates.date2num(sample_dates)
plt.vlines(x=sample_dates, ymin=0, ymax=10, color = 'r')
ax.xaxis.set_major_locator(mdates.YearLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d.%m.%y'))

for i, x in enumerate(sample_dates):
    text(x, 5, "entry %d" % i, rotation=90, verticalalignment='center')

plt.show()

次のようになります。

新しいプロット結果。

于 2016-12-15T12:03:23.993 に答える