【问题标题】:Add text next to vertical line in matplotlib在 matplotlib 中的垂直线旁边添加文本
【发布时间】:2016-12-14 22:27:01
【问题描述】:

这是我的代码:

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 轴上的某些日期绘制两条红线。现在我想在每一行添加文本。文本应与线平行。我从哪里开始?

【问题讨论】:

  • 一如既往,首先阅读手册,尤其是section on text 和其中的命令。

标签: python matplotlib vline


【解决方案1】:

您可以使用 Matplotlib text 函数在绘图上绘制文本。它有很多可以设置的参数。请参阅文档和示例here

这是一个与行平行的文本示例:

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()

应该是这样的:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 2010-10-04
    • 2013-03-27
    • 2014-02-03
    • 2014-05-17
    • 2019-01-04
    • 1970-01-01
    相关资源
    最近更新 更多