资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
四、与 IPython Notebook部件交互简单来说,这些部件可以让你像在HT ML 表单里一样选择一些值,这包括滑块、下拉框、选择框等。正如你会读到的,这些部件非常方便将我们在第1 章中提及的天气数据可视化。操作步骤( 1)导入部分如下:1importseaborn assns2importnumpyasnp3importpandasaspd4importmatplotlib.pyplotasplt5fromIPython.html.widgetsimportinteract6fromdautilimportdata7fromdautilimportts( 2)加载数据同时请求内联图:1%matplotlibinline2df=data.Weather.load()( 3)定义以下函数,这个函数会显示气泡图:1def plot_data(x=TEMP, y=RAIN, z=WIND_SPEED, f=A, size=10,cmap=Blues):2dfx=dfx.resample(f)3dfy=dfy.resample(f).mean()4dfz=dfz.resample(f).mean()56bubbles= (dfz - dfz.min()/(dfz.max() - dfz.min()7891011121314151617years=dfz.index.yearsc=plt.scatter(dfx,dfy,s=size*bubbles+9,c=years,cmap=cmap,label=data.Weather.get_header(z),alpha=0.5)plt.colorbar(sc,label=Year)freqs=A:Annual,M:Monthly,D:Dailyplt.title(freqsf+Averages)plt.xlabel(data.Weather.get_header(x)plt.ylabel(data.Weather.get_header(y)plt.legend(loc=best)( 4)通过以下代码调用我们刚刚定义的函数:1vars=df.columns.tolist()2freqs=(A,M,D)3cmaps=cmapforcmap in plt.cm.datadifnot cmap.endswith(_r)4cmaps.sort()5interact(plot_data, x=vars, y=vars, z=vars, f=freqs,size=(100,700), cmap=cmaps)( 5)本示例需要上手操作一下来理解它的工作原理,下面是一个样例气泡图:( 6)定义另一个函数(和第(2)步中的程序同名,注释掉前一个),这个函数里我们将数据按照日或月进行分组:1defplot_data(x=TEMP,y=RAIN,z=WIND_SPEED,2groupby=ts.groupby_yday,3size=10,cmap=Blues):4ifgroupby =ts.groupby_yday:567891011121314151617181920212223groupby=ts.groupby_ydayelifgroupby=ts.groupby_month:groupby=ts.groupby_monthelse:raiseAssertionError(Unknowngroupby + groupby)dfx=groupby(dfx).mean()dfy=groupby(dfy).mean()dfz=groupby(dfz).mean()bubbles=(dfz-dfz.min()/(dfz.max()-dfz.min()colors=dfx.index.valuessc=plt.scatter(dfx,dfy,s=size*bubbles+9,c = colors,cmap=cmap,label=data.Weather.get_header(z), alpha=0.5)plt.colorbar(sc, label=Day of Year)by_dict = ts.groupby_yday: Day of Year, ts.groupby_month: Monthplt.title(Groupedby+by_dictgroupby)plt.xlabel(data.Weather.get_header(x)plt.ylabel(data.Weather.get_header(y)plt.legend(loc=best)( 7)用这段代码调用上述函数:1groupbys = (ts.groupby_yday, ts.groupby_month)2interact(plot_data, x=vars, y=vars, z=vars, groupby=groupbys,3size=(100,700), cmap=cmaps)请参见以下截图了解最终结果:我对这个图的第一印象是温度和风速似乎是正相关的。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号