def plot_data_split(request, id, split_nr): split_nr = int(split_nr) task = get_object_or_404(Task, pk=id) img = [task.get_split_image(split_nr)] #import pdb #pdb.set_trace() if (img == None): return None # why it does not work ? from pylab import axis axis('off') from StringIO import StringIO dpi = 60 bgcol = '#ffffff' fig = Figure(figsize=(7, 0.3), dpi=dpi, facecolor=bgcol) canvas = FigureCanvas(fig) bx = fig.add_subplot(111) bx.set_yticklabels([]) bx.set_xticklabels([]) bx.set_yticks([]) #import pdb #pdb.set_trace() bx.imshow(img, aspect='auto', interpolation='nearest', vmin=0, vmax=3, cmap=cmap_mldata) # bx = fig.add_subplot(212) # bx.set_yticklabels([]) # bx.set_xticklabels([]) # bx.imshow(img,aspect='auto',interpolation='nearest',cmap=cm.jet,extent=[0,len(img[0])-1,0,1]) canvas.draw() imdata = StringIO() fig.savefig(imdata, format='png', dpi=dpi, facecolor=bgcol) return HttpResponse(imdata.getvalue(), mimetype='image/png')
def plot_data_split(request,id,split_nr): split_nr=int(split_nr) task=get_object_or_404(Task, pk=id) img = [task.get_split_image(split_nr)] #import pdb #pdb.set_trace() if (img == None): return None # why it does not work ? from pylab import axis axis('off') from StringIO import StringIO dpi=60 bgcol='#ffffff' fig = Figure(figsize=(7,0.3), dpi=dpi, facecolor=bgcol) canvas = FigureCanvas(fig) bx = fig.add_subplot(111) bx.set_yticklabels([]) bx.set_xticklabels([]) bx.set_yticks([]) #import pdb #pdb.set_trace() bx.imshow(img,aspect='auto',interpolation='nearest',vmin=0,vmax=3,cmap=cmap_mldata) # bx = fig.add_subplot(212) # bx.set_yticklabels([]) # bx.set_xticklabels([]) # bx.imshow(img,aspect='auto',interpolation='nearest',cmap=cm.jet,extent=[0,len(img[0])-1,0,1]) canvas.draw() imdata=StringIO() fig.savefig(imdata,format='png', dpi=dpi, facecolor=bgcol) return HttpResponse(imdata.getvalue(),mimetype='image/png')
def stats_helper(request, software_id, type, dpi): # matplotlib needs a writable home directory if settings.PRODUCTION: import os os.environ['HOME']='/home/mloss/tmp' import matplotlib import datetime matplotlib.use('Cairo') from matplotlib.figure import Figure from matplotlib.backends.backend_cairo import FigureCanvasCairo as FigureCanvas from matplotlib.dates import DayLocator, WeekdayLocator, HourLocator, MonthLocator, YearLocator from matplotlib.dates import DateFormatter, date2num from StringIO import StringIO if dpi<=40: bgcol='#f7f7f7' else: bgcol='#ffffff' fig = Figure(figsize=(8,6), dpi=dpi, facecolor=bgcol) canvas = FigureCanvas(fig) ax = fig.add_subplot(111) stat = SoftwareStatistics.objects.filter(software=software_id).distinct().order_by('date') if stat.count()<=0: return HttpResponseForbidden() x=list() y=list() for entry in stat: x.append(date2num(entry.date)) if type=='downloads': y.append(entry.number_of_downloads) elif type=='views': y.append(entry.number_of_views) #ax.plot(x,y,'bo', alpha=0.7) #ax.plot(x,y,'b-',linewidth=1, alpha=0.5) ax.bar(x,y) days = DayLocator() weeks= WeekdayLocator() months= MonthLocator() years= YearLocator() dateFmt = DateFormatter("%Y-%m-%d") ax.xaxis.set_major_formatter(dateFmt) if len(x)<=14: ax.xaxis.set_major_locator(days) elif len(x)<60: ax.xaxis.set_major_locator(weeks) ax.xaxis.set_minor_locator(days) elif len(x)<720: ax.xaxis.set_major_locator(months) ax.xaxis.set_minor_locator(weeks) else: ax.xaxis.set_major_locator(years) ax.xaxis.set_minor_locator(months) if dpi>40: if type=='downloads': ax.set_title('Number of Downloads') ax.set_ylabel('Downloads per Day') elif type=='views': ax.set_title('Number of Views') ax.set_ylabel('Views per Day') ax.grid(True) ax.axis("tight") for label in ax.get_xticklabels(): label.set_ha('right') label.set_rotation(30) canvas.draw() imdata=StringIO() fig.savefig(imdata,format='png', dpi=dpi, facecolor=bgcol) del fig del ax return HttpResponse(imdata.getvalue(), mimetype='image/png')
def plot_legend(request): import numpy img=numpy.array([[0,1,2,3]]) #from pylab import axis #axis('off') from StringIO import StringIO dpi=25 bgcol='#ffffff' fig = Figure(figsize=(7,1.5), dpi=dpi, facecolor=bgcol) canvas = FigureCanvas(fig) ax = fig.add_subplot(171) ax.set_title('not used') ax.title.set_fontsize(30) ax.set_yticklabels([]) ax.set_xticklabels([]) ax.set_yticks([]) ax.set_xticks([]) ax.imshow([[0]],interpolation='nearest',vmin=0,vmax=3,cmap=cmap_mldata) bx = fig.add_subplot(173) bx.set_title('train') bx.title.set_fontsize(30) bx.set_yticklabels([]) bx.set_xticklabels([]) bx.set_yticks([]) bx.set_xticks([]) bx.imshow([[1]],interpolation='nearest',vmin=0,vmax=3,cmap=cmap_mldata) cx = fig.add_subplot(175) cx.set_title('validation') cx.title.set_fontsize(30) cx.set_yticklabels([]) cx.set_xticklabels([]) cx.set_yticks([]) cx.set_xticks([]) cx.imshow([[2]],interpolation='nearest',vmin=0,vmax=3,cmap=cmap_mldata) dx = fig.add_subplot(177) dx.set_title('test') dx.title.set_fontsize(30) dx.set_yticklabels([]) dx.set_xticklabels([]) dx.set_yticks([]) dx.set_xticks([]) dx.imshow([[3]],interpolation='nearest',vmin=0,vmax=3,cmap=cmap_mldata) #bx.set_title('legend') #bx.set_yticklabels([]) #bx.set_xticklabels([]) #bx.set_yticklabels([]) #bx.set_xticklabels(['not used','train','validation','test']) #bx.set_yticks([]) #bx.set_xticks([2,7,12,17]) #for label in bx.get_xticklabels(): # label.set_fontsize(12) #bx.imshow([[0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3]],aspect=None,interpolation='nearest',cmap=cm.Greys) canvas.draw() imdata=StringIO() fig.savefig(imdata,format='png', dpi=dpi, facecolor=bgcol) return HttpResponse(imdata.getvalue(),mimetype='image/png')
def plot_legend(request): import numpy img = numpy.array([[0, 1, 2, 3]]) #from pylab import axis #axis('off') from StringIO import StringIO dpi = 25 bgcol = '#ffffff' fig = Figure(figsize=(7, 1.5), dpi=dpi, facecolor=bgcol) canvas = FigureCanvas(fig) ax = fig.add_subplot(171) ax.set_title('not used') ax.title.set_fontsize(30) ax.set_yticklabels([]) ax.set_xticklabels([]) ax.set_yticks([]) ax.set_xticks([]) ax.imshow([[0]], interpolation='nearest', vmin=0, vmax=3, cmap=cmap_mldata) bx = fig.add_subplot(173) bx.set_title('train') bx.title.set_fontsize(30) bx.set_yticklabels([]) bx.set_xticklabels([]) bx.set_yticks([]) bx.set_xticks([]) bx.imshow([[1]], interpolation='nearest', vmin=0, vmax=3, cmap=cmap_mldata) cx = fig.add_subplot(175) cx.set_title('validation') cx.title.set_fontsize(30) cx.set_yticklabels([]) cx.set_xticklabels([]) cx.set_yticks([]) cx.set_xticks([]) cx.imshow([[2]], interpolation='nearest', vmin=0, vmax=3, cmap=cmap_mldata) dx = fig.add_subplot(177) dx.set_title('test') dx.title.set_fontsize(30) dx.set_yticklabels([]) dx.set_xticklabels([]) dx.set_yticks([]) dx.set_xticks([]) dx.imshow([[3]], interpolation='nearest', vmin=0, vmax=3, cmap=cmap_mldata) #bx.set_title('legend') #bx.set_yticklabels([]) #bx.set_xticklabels([]) #bx.set_yticklabels([]) #bx.set_xticklabels(['not used','train','validation','test']) #bx.set_yticks([]) #bx.set_xticks([2,7,12,17]) #for label in bx.get_xticklabels(): # label.set_fontsize(12) #bx.imshow([[0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3]],aspect=None,interpolation='nearest',cmap=cm.Greys) canvas.draw() imdata = StringIO() fig.savefig(imdata, format='png', dpi=dpi, facecolor=bgcol) return HttpResponse(imdata.getvalue(), mimetype='image/png')