def Evt_Bootstrap_Plot(self, event): from pandas.tools.plotting import bootstrap_plot page = self.New_Tab.GetSelection() panel = self.New_Tab.GetPage(page) self.selected_checkbox() panel.canvas.figure.clf() if len(self.selected_checkboxes) == 1: bootstrap_plot(self.data[self.selected_checkboxes[0][1]][self.minimum: self.maximum], fig= panel.canvas.figure) panel.canvas.draw() else: raise KeyError("Bootstrap plot can only be drawn with One variable") return
def _doplot(self, data, ax, kind, subplots, kwargs): """Do core plotting""" cols = data.columns rows = int(round(np.sqrt(len(data.columns)),0)) if len(data.columns) == 1: kwargs['subplots'] = 0 if kind == 'pie': kwargs['subplots'] = True if subplots == 0: layout = None else: layout=(rows,-1) if kind == 'bar': if len(data) > 50: ax.get_xaxis().set_visible(False) if len(data) > 400: print ('too many bars to plot') return if kind == 'scatter': axs = self.scatter(data, ax, **kwargs) if kwargs['sharey'] == 1: lims = self.fig.axes[0].get_ylim() for a in self.fig.axes: a.set_ylim(lims) elif kind == 'boxplot': axs = data.boxplot(ax=ax, rot=kwargs['rot'], grid=kwargs['grid']) #boxplot won't accept required kwargs? if kwargs['logy'] == 1: ax.set_yscale('log') elif kind == 'histogram': bins = int(kwargs['bins']) axs = data.plot(kind='hist',layout=layout, ax=ax, **kwargs) elif kind == 'heatmap': axs = self.heatmap(data, ax, kwargs) elif kind == 'bootstrap': axs = plotting.bootstrap_plot(data) elif kind == 'scatter_matrix': axs = pd.scatter_matrix(data, ax=ax, **kwargs) elif kind == 'hexbin': x = cols[0] y = cols[1] axs = data.plot(x,y,ax=ax,kind='hexbin',gridsize=20,**kwargs) else: axs = data.plot(ax=ax, layout=layout, **kwargs) return axs
def DrawGraph6(): from pandas.tools.plotting import bootstrap_plot #fig, axes = plt.subplots(2,1,figsize=(24,16)) #DF_stock['Volume'].plot(ax=axes[0], lw=1, style="b-") bootstrap_plot(DF_stock['Close'], size=10, samples=500, color="grey", lw=1) plt.show()
# In[247]: returns[1:10] # In[248]: tsplots.plot_pacf(returns, lags= 20) plt.show() # In[249]: from pandas.tools.plotting import bootstrap_plot bootstrap_plot(returns, size = 50) plt.show() # Find out the following facts about the data set # - Total number of data points # - Number of positive returns # - Number of negative returns # - Average annualized returns # - Standard deviation # - Sharpe ratio # - Cumulative returns # In[250]: total_data = len(returns)
def _doplot(self, data, ax, kind, subplots, errorbars, useindex, bw, kwargs): """Core plotting method""" kwargs = kwargs.copy() cols = data.columns if kind == "line": data = data.sort_index() rows = int(round(np.sqrt(len(data.columns)), 0)) if len(data.columns) == 1 and kind not in ["pie"]: kwargs["subplots"] = 0 if "colormap" in kwargs: cmap = plt.cm.get_cmap(kwargs["colormap"]) else: cmap = None # change some things if we are plotting in b&w styles = [] if bw == True and kind not in ["pie", "heatmap"]: cmap = None kwargs["color"] = "k" kwargs["colormap"] = None styles = ["-", "--", "-.", ":"] if "linestyle" in kwargs: del kwargs["linestyle"] if subplots == 0: layout = None else: layout = (rows, -1) if errorbars == True: yerr = data[data.columns[1::2]] data = data[data.columns[0::2]] yerr.columns = data.columns else: yerr = None if kind == "bar": if len(data) > 50: ax.get_xaxis().set_visible(False) if len(data) > 300: self.showWarning("too many bars to plot") return if kind == "scatter": axs = self.scatter(data, ax, **kwargs) if kwargs["sharey"] == 1: lims = self.fig.axes[0].get_ylim() for a in self.fig.axes: a.set_ylim(lims) elif kind == "boxplot": axs = data.boxplot(ax=ax, rot=kwargs["rot"], grid=kwargs["grid"], patch_artist=True) lw = kwargs["linewidth"] plt.setp(axs["boxes"], color="black", lw=lw) plt.setp(axs["whiskers"], color="black", lw=lw) plt.setp(axs["fliers"], color="black", marker="+", lw=lw) clr = cmap(0.5) for patch in axs["boxes"]: patch.set_facecolor(clr) # boxplot won't accept required kwargs? if kwargs["logy"] == 1: ax.set_yscale("log") elif kind == "histogram": bins = int(kwargs["bins"]) axs = data.plot(kind="hist", layout=layout, ax=ax, **kwargs) elif kind == "heatmap": axs = self.heatmap(data, ax, kwargs) elif kind == "bootstrap": axs = plotting.bootstrap_plot(data) elif kind == "scatter_matrix": axs = pd.scatter_matrix(data, ax=ax, **kwargs) elif kind == "hexbin": x = cols[0] y = cols[1] axs = data.plot(x, y, ax=ax, kind="hexbin", gridsize=20, **kwargs) elif kind == "contour": xi, yi, zi = self.contourData(data) cs = ax.contour(xi, yi, zi, 15, linewidths=0.5, colors="k") # plt.clabel(cs,fontsize=9) cs = ax.contourf(xi, yi, zi, 15, cmap=cmap) self.fig.colorbar(cs, ax=ax) axs = ax elif kind == "imshow": xi, yi, zi = self.contourData(data) im = ax.imshow(zi, interpolation="nearest", cmap=cmap, alpha=kwargs["alpha"]) self.fig.colorbar(im, ax=ax) axs = ax elif kind == "pie": if kwargs["legend"] == True: lbls = None else: lbls = list(data.index) axs = data.plot(ax=ax, kind="pie", labels=lbls, layout=layout, autopct="%1.1f%%", subplots=True, **kwargs) if lbls == None: axs[0].legend(labels=data.index) elif kind == "barh": lw = kwargs["linewidth"] axs = data.plot(ax=ax, layout=layout, xerr=yerr, **kwargs) else: # line, bar and area plots if useindex == False: x = data.columns[0] data.set_index(x, inplace=True) data = data.sort() if len(data.columns) == 0: msg = "Not enough data.\nIf 'use index' is off select at least 2 columns" self.showWarning(msg) return # adjust colormap to avoid white lines if cmap != None: cmap = util.adjustColorMap(cmap, 0.15, 1.0) del kwargs["colormap"] axs = data.plot(ax=ax, layout=layout, yerr=yerr, style=styles, cmap=cmap, **kwargs) return axs
def DrawGraph6(): from pandas.tools.plotting import bootstrap_plot # fig, axes = plt.subplots(2,1,figsize=(24,16)) # df['Volume'].plot(ax=axes[0], lw=1, style='b-') bootstrap_plot(df['Close'], size=10, samples=500, color='grey', lw=1) plt.show()
def _doplot(self, data, ax, kind, subplots, errorbars, useindex, kwargs): """Do core plotting""" cols = data.columns if kind == 'line': data = data.sort_index() rows = int(round(np.sqrt(len(data.columns)),0)) if len(data.columns) == 1 and kind not in ['pie']: kwargs['subplots'] = 0 if 'colormap' in kwargs: cmap = plt.cm.get_cmap(kwargs['colormap']) if subplots == 0: layout = None else: layout=(rows,-1) if errorbars == True: yerr = data[data.columns[1::2]] data = data[data.columns[0::2]] yerr.columns = data.columns else: yerr = None if kind == 'bar': if len(data) > 50: ax.get_xaxis().set_visible(False) if len(data) > 300: self.showWarning('too many bars to plot') return if kind == 'scatter': axs = self.scatter(data, ax, **kwargs) if kwargs['sharey'] == 1: lims = self.fig.axes[0].get_ylim() for a in self.fig.axes: a.set_ylim(lims) elif kind == 'boxplot': axs = data.boxplot(ax=ax, rot=kwargs['rot'], grid=kwargs['grid'], patch_artist=True) lw = kwargs['linewidth'] plt.setp(axs['boxes'], color='black', lw=lw) plt.setp(axs['whiskers'], color='black', lw=lw) plt.setp(axs['fliers'], color='black', marker='+', lw=lw) clr = cmap(0.5) for patch in axs['boxes']: patch.set_facecolor(clr) #boxplot won't accept required kwargs? if kwargs['logy'] == 1: ax.set_yscale('log') elif kind == 'histogram': bins = int(kwargs['bins']) axs = data.plot(kind='hist',layout=layout, ax=ax, **kwargs) elif kind == 'heatmap': axs = self.heatmap(data, ax, kwargs) elif kind == 'bootstrap': axs = plotting.bootstrap_plot(data) elif kind == 'scatter_matrix': axs = pd.scatter_matrix(data, ax=ax, **kwargs) elif kind == 'hexbin': x = cols[0] y = cols[1] axs = data.plot(x,y,ax=ax,kind='hexbin',gridsize=20,**kwargs) elif kind == 'contour': xi,yi,zi = self.contourData(data) cs = ax.contour(xi,yi,zi,15,linewidths=.5,colors='k') #plt.clabel(cs,fontsize=9) cs = ax.contourf(xi,yi,zi,15,cmap=cmap) self.fig.colorbar(cs,ax=ax) axs = ax elif kind == 'imshow': xi,yi,zi = self.contourData(data) im = ax.imshow(zi, interpolation="nearest", cmap=cmap, alpha=kwargs['alpha']) self.fig.colorbar(im,ax=ax) axs = ax elif kind == 'pie': if kwargs['legend'] == True: lbls=None else: lbls = list(data.index) axs = data.plot(ax=ax,kind='pie', labels=lbls, layout=layout, autopct='%1.1f%%', subplots=True, **kwargs) if lbls == None: axs[0].legend(labels=data.index) elif kind == 'barh': lw = kwargs['linewidth'] axs = data.plot(ax=ax, layout=layout, xerr=yerr, **kwargs) else: if useindex == False: x=data.columns[0] data.set_index(x,inplace=True) data=data.sort() if len(data.columns) == 0: msg = "Not enough data.\nIf 'use index' is off select at least 2 columns" self.showWarning(msg) return axs = data.plot(ax=ax, layout=layout, yerr=yerr, **kwargs) return axs
data = Series(randn(1000)) data.hist(by=randint(0, 4, 1000), figsize=(6, 4)) plt.show() plt.savefig("image9.png") from pandas.tools.plotting import scatter_matrix df = DataFrame(randn(1000, 4), columns=['a', 'b', 'c', 'd']) scatter_matrix(df, alpha=0.2, figsize=(6, 6), diagonal='kde') plt.show() plt.savefig("image11.png") from pandas.tools.plotting import bootstrap_plot data = Series(rand(1000)) bootstrap_plot(data, size=50, samples=500, color='grey') plt.show() plt.savefig("image12.png") df = DataFrame(randn(1000, 10), index=ts.index) df = df.cumsum() plt.figure() df.plot(colormap='jet') plt.show() plt.savefig("image13.png") dd = DataFrame(randn(10, 10)).applymap(abs) dd = dd.cumsum() plt.figure() dd.plot(kind='bar', colormap='Greens') plt.show()
def _doplot(self, data, ax, kind, subplots, errorbars, useindex, bw, kwargs): """Core plotting method""" kwargs = kwargs.copy() cols = data.columns if kind == 'line': data = data.sort_index() rows = int(round(np.sqrt(len(data.columns)),0)) if len(data.columns) == 1 and kind not in ['pie']: kwargs['subplots'] = 0 if 'colormap' in kwargs: cmap = plt.cm.get_cmap(kwargs['colormap']) else: cmap = None #change some things if we are plotting in b&w styles = [] if bw == True and kind not in ['pie','heatmap']: cmap = None kwargs['color'] = 'k' kwargs['colormap'] = None styles = ["-","--","-.",":"] if 'linestyle' in kwargs: del kwargs['linestyle'] if subplots == 0: layout = None else: layout=(rows,-1) if errorbars == True: yerr = data[data.columns[1::2]] data = data[data.columns[0::2]] yerr.columns = data.columns else: yerr = None if kind == 'bar' or kind == 'barh': if len(data) > 50: ax.get_xaxis().set_visible(False) if len(data) > 300: self.showWarning('too many bars to plot') return if kind == 'scatter': axs = self.scatter(data, ax, **kwargs) if kwargs['sharey'] == 1: lims = self.fig.axes[0].get_ylim() for a in self.fig.axes: a.set_ylim(lims) elif kind == 'boxplot': axs = data.boxplot(ax=ax, rot=kwargs['rot'], grid=kwargs['grid'], patch_artist=True) lw = kwargs['linewidth'] plt.setp(axs['boxes'], color='black', lw=lw) plt.setp(axs['whiskers'], color='black', lw=lw) plt.setp(axs['fliers'], color='black', marker='+', lw=lw) clr = cmap(0.5) for patch in axs['boxes']: patch.set_facecolor(clr) #boxplot won't accept required kwargs? if kwargs['logy'] == 1: ax.set_yscale('log') elif kind == 'histogram': bins = int(kwargs['bins']) axs = data.plot(kind='hist',layout=layout, ax=ax, **kwargs) elif kind == 'heatmap': axs = self.heatmap(data, ax, kwargs) elif kind == 'bootstrap': axs = plotting.bootstrap_plot(data) elif kind == 'scatter_matrix': axs = pd.scatter_matrix(data, ax=ax, **kwargs) elif kind == 'hexbin': x = cols[0] y = cols[1] axs = data.plot(x,y,ax=ax,kind='hexbin',gridsize=20,**kwargs) elif kind == 'contour': xi,yi,zi = self.contourData(data) cs = ax.contour(xi,yi,zi,15,linewidths=.5,colors='k') #plt.clabel(cs,fontsize=9) cs = ax.contourf(xi,yi,zi,15,cmap=cmap) self.fig.colorbar(cs,ax=ax) axs = ax elif kind == 'imshow': xi,yi,zi = self.contourData(data) im = ax.imshow(zi, interpolation="nearest", cmap=cmap, alpha=kwargs['alpha']) self.fig.colorbar(im,ax=ax) axs = ax elif kind == 'pie': if kwargs['legend'] == True: lbls=None else: lbls = list(data.index) axs = data.plot(ax=ax,kind='pie', labels=lbls, layout=layout, autopct='%1.1f%%', subplots=True, **kwargs) if lbls == None: axs[0].legend(labels=data.index) #elif kind == 'barh': # lw = kwargs['linewidth'] # axs = data.plot(ax=ax, layout=layout, xerr=yerr, **kwargs) elif kind == 'venn': axs = self.venn(data, ax, **kwargs) else: #line, bar and area plots if useindex == False: x=data.columns[0] data.set_index(x,inplace=True) #data=data.sort() if len(data.columns) == 0: msg = "Not enough data.\nIf 'use index' is off select at least 2 columns" self.showWarning(msg) return #adjust colormap to avoid white lines if cmap != None: cmap = util.adjustColorMap(cmap, 0.15,1.0) del kwargs['colormap'] axs = data.plot(ax=ax, layout=layout, yerr=yerr, style=styles, cmap=cmap, **kwargs) return axs