Я хотел бы нарисовать прямоугольник, чтобы указать диапазон в пределах оси x. Я могу использовать локаторы для установки тиков и меток, но мне кажется, что они не используют их для рисования прямоугольника. Как я могу это сделать ?!Выровнять прямоугольники на оси даты
import datetime as DT
from matplotlib import pyplot as plt
import matplotlib.dates as dates
ddata = [DT.datetime.strptime('2010-02-05', "%Y-%m-%d"),
DT.datetime.strptime('2010-02-19', "%Y-%m-%d"),
DT.datetime.strptime('2010-03-05', "%Y-%m-%d"),
DT.datetime.strptime('2010-03-19', "%Y-%m-%d"),]
values = [123,678,987,345]
d1 = zip(ddata,values)
def nplot(data):
x = [date for (date, value) in data]
y = [value for (date, value) in data]
# Set the stage
fig, ax = plt.subplots()
graph = fig.add_subplot(111)
# Plot the data as a red line with round markers
graph.plot(x,y,'r-o')
days = dates.DayLocator(interval=7) # every week
months = dates.MonthLocator() # every month
# Create locators and ticks
ax.xaxis.set_minor_locator(days)
ax.xaxis.set_minor_formatter(dates.DateFormatter('%d'))
ax.xaxis.set_major_locator(months)
ax.xaxis.set_major_formatter(dates.DateFormatter('\n\n%b'))
ax.xaxis.grid(True, which="major", linewidth=2)
# Now how do I align a rectangle with specific dates?
gca().add_patch(Rectangle((data[0][0], 1000),
data[2][0], 1000, facecolor='w', alpha=0.9)) # doesn't work
plt.show()
nplot(d1)
код, который вы дали много подробностей, но не совсем ясно (по крайней мере для меня), в чем вопрос. Я подозреваю, что [третье демо здесь] (http://matplotlib.org/examples/pylab_examples/fill_between_demo.html) поможет вам. – Greg
@ Грег, может, я постараюсь завтра. Мой пример не показывает его (потому что я не знаю, как это сделать), но я хочу заполнить каждую вторую пару локаторов даты. В конечном счете, я хотел бы заполнить промежутки между кварталами (от Jan до Mar, затем с июля по сентябрь и т. Д.), Независимо от того, где находятся ограничения по оси. И, чтобы пополнить его, я хотел бы, чтобы границы заливки были отметками между месяцами, поэтому ясно, какие месяцы принадлежат кварталу. Не спрашивать слишком много? :) – dmvianna