我在發送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