我在发送PDF文件作为响应的django中编写视图。 Pdf有一个使用matplotlib完成日期值的线图。该图看起来非常类似于这个。在matplotlib中向x y轴添加偏移量
如果我有最大y数据点为1000,那么图形会触及顶部x轴,我不想要。例如,请参阅此图。
。
在(3.0,4.0)线图触及顶部x轴。
我想为yaxis提供一些额外的空间(即将max-y读数增加到1100),这样我的图形看起来不错,如第一张图所示。
我该怎么做?
from matplotlib.backends.backend_pdf import FigureCanvasPdf
from matplotlib.figure import Figure
from matplotlib.dates import DateFormatter
r_name = request.GET.get('r_name')
index_id = request.GET.get('index_id')
resp = api_views.historical_observations(request,index_id)
data = resp.data.get('data')
x,y=[],[]
for datam in data:
x.append(datam.get('measurement_date'))
y.append(datam.get('value'))
fig=Figure()
ax=fig.add_subplot(111)
ax.set_title(r_name)
ax.plot_date(x, y, '-bo')
ax.xaxis.set_major_formatter(DateFormatter('%Y-%m-%d'))
fig.autofmt_xdate()
canvas=FigureCanvasPdf(fig)
response= HttpResponse(content_type='application/pdf')
filename = settings.PDF_FILE_PREFIX+"_"+r_name+"_"+request.GET.get('start_date')+"_" +\
request.GET.get('end_date')+".pdf"
response['Content-Disposition'] = "attachment; filename="+filename
canvas.print_pdf(response)
return response
来简单地将y轴范围设置为更大的东西就足够了吗? – M4rtini
@ M4rtini我想我可以通过计算y值的最大值和最小值来做到这一点。但我喜欢jqplot中的'offset'的想法http://www.jqplot.com/。我想知道它是否可能与matploblib? –
我不熟悉jqplot,所以我不能对此发表评论。设置y轴范围的替代方法是定义轴的余量。 – M4rtini