《python数据分析与应用》 课件 第8章 Python数据可视化_第1页
《python数据分析与应用》 课件 第8章 Python数据可视化_第2页
《python数据分析与应用》 课件 第8章 Python数据可视化_第3页
《python数据分析与应用》 课件 第8章 Python数据可视化_第4页
《python数据分析与应用》 课件 第8章 Python数据可视化_第5页
已阅读5页,还剩15页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章Python数据可视化Python数据分析与应用1CONTENTS8.1知识准备8.2代码补全和知识拓展8.3实训任务:视频网站数据可视化8.4延伸高级任务目录8.5课后习题2知识准备132.Matplotlib图形的详细设置Matplotlib名称可以被分解为:Math(数学)+plot(图表图形)+lib(库),因此将其合在一起称之为数学图表库。Matplotlib是Python编程语言最常用的绘图工具包,同时作为Python数据分析三剑客之一,是最基础的Python可视化库。8.1.2Python可视化库知识准备importmatplotlib.pyplotaspltimportpandasaspddf=pd.read_excel('./东三省GDP.xlsx’)x=df['年份']#设定X变量数据y=df['吉林省GDP增长率']#设定Y变量数据plt.plot(x,y)#绘制折线图plt.show()#显示图形#设置画布大小为1200*600,背景色为黄色plt.figure(figsize=(12,6),facecolor='y')#添加网格plt.grid()#解决中文无法显示的问题plt.rcParams['font.sans-serif']=['SimHei']#绘制折线图,并设置颜色、线条样式、标记样式plt.plot(x,y,color='r',linestyle='--',marker='o',mfc='w')#添加数据标签fora,binzip(x,y):plt.text(a,b+0.5,'%.2f'%b,ha='center',va='bottom',fontsize=8)#设置X轴数据plt.xticks(x)#添加图表标题plt.title('吉林省GDP增长率')#添加图例plt.legend(('GDP增长率',))48.1.1可视化的作用8.1.3Matplotlib和Seaborn库的安装8.1.4Matplotlib1.快速绘制Matplotlib图形代码补全和知识拓展25frompylabimport*X=np.linspace(__________________________)C,S=np.cos(X),np.sin(X)plot(X,C)plot(X,S)show()请补充代码绘制出函数图形。8.2.1代码补全:1.绘制sin和cos函数图像6importnumpyasnp(__________________________)fig=plt.figure()fig.subplots_adjust(top=0.8)ax1=fig.add_subplot(__________________________)ax1.set_ylabel(__________________________)ax1.set_title('Asinewave')t=np.arange(0.0,1.0,0.01)s=np.sin(2*np.pi*t)line,=ax1.plot(t,s,color='blue',(__________________________))#Fixingrandomstateforreproducibilitynp.random.seed(19680801)ax2=fig.add_axes([0.15,0.1,0.7,0.3])n,bins,patches=ax2.hist(np.random.randn(1000),50,facecolor='yellow',edgecolor='yellow')(__________________________)plt.show()请补充代码绘制出函数图形。8.2.1代码补全:2.完成图形7可以使用比较简单的代码快速绘制出内容比较完整的统计图形1.Seaborn绘图importseabornassnsimportmatplotlib.pyplotasplta=[1,2,3,4,5]b=[5,10,15,20,25]sns.barplot(x=a,y=b)#用seaborn绘制条形图plt.show()2.Seaborn作图的基本操作8.2.2知识拓展:Seaborn实训任务:视频网站数据可视化39#1.读取数据gb_data=np.loadtxt("GB_video_data_numbers.csv",delimiter=",")print(gb_data)#2.获取评论数gb_data_com=gb_data[:,3]print(gb_data_com)#极差gb_ptp=max(gb_data_com)-min(gb_data_com)print(gb_ptp)#582505.0#组距->>根据极差考虑需要多少组来确定大概组距d=25000#组数->>极差/组距bins_nums_gb=int(gb_ptp/d)print(bins_nums_gb)#直方图plt.hist(gb_data_com,bins=bins_nums_gb)#图形展示plt.show()使用Matplotlib绘制英国与美国Youtube数据各自评论数量的图形,查看其评论数主要分布在哪个区间数据文件名称分别为:GB_video_data_numbers.csv(英国)与US_video_data_numbers.csv(美国)8.3实训任务:英国与美国Youtube数据可视化10#评论在100000后的数目很少,无参考价值,进行简单数据清洗->>删除#清洗过后的数据gb_data_com_useful=[]foriingb_data_com:ifi<100000:gb_data_com_useful.append(i)#重新计算极差、组距,组数#极差gb_ptp=max(gb_data_com_useful)-min(gb_data_com_useful)#gb_ptp->>83992.0#组距d=3000#组数bins_gb=int(gb_ptp/d)print(bins_gb)#可视化plt.hist(gb_data_com_useful,bins=bins_gb)#设置显示中文字体plt.rcParams["font.sans-serif"]=["SimHei"]#图形展示plt.show()8.3实训任务:英国与美国Youtube数据可视化11由于之前的图形无法清晰判断数据分布的主要区间,数据内容展示的不够清晰。因此需要再次对数据进行清洗,对有参考价值的数据继续进行分析,代码如下所示。#经过两次清洗,图还是不清晰,再次进行清洗,10000之后数据无参靠价值#清洗过后的数据gb_data_com_useful=[]foriingb_data_com:(__________________________)(__________________________)#重新计算极差、组距,组数#极差gb_ptp=max(gb_data_com_useful)-min(gb_data_com_useful)#gb_ptp->>9933.0#组距d=500#组数bins_gb=int(gb_ptp/d)print(bins_gb)#可视化plt.hist(gb_data_com_useful,bins=bins_gb,density=True)#对x轴进行更精细划分x_ticks=[iforiinrange(0,10500,500)]#可添加合适标签x_label=[f"{i}次"foriinrange(0,10500,500)]plt.xticks(x_ticks,x_label,rotation=45)#添加组件plt.xlabel("次数")plt.ylabel("频率")plt.title("GB评论次数分布图")8.3实训任务:英国与美国Youtube数据可视化12然而上述代码获得的显示效果仍然不够理想,请继续编写程序进行可视化展示与分析。最终我们会得到数据可视化之后一张较为满意直方图延伸高级任务413importmatplotlib.datesasmdatesimportmatplotlib.cbookascbookyears=mdates.YearLocator()#everyyearmonths=mdates.MonthLocator()#everymonthyearsFmt=mdates.DateFormatter('%Y')withcbook.get_sample_data(os.getcwd()+'/sample_data/goog.npz',asfileobj=True,np_load=True)asdatafile:r=datafile['price_data'].view(np.recarray)print()fig,ax=plt.subplots()ax.plot(r.date,r.adj_close)#formattheticksax.xaxis.set_major_locator(years)ax.xaxis.set_major_formatter(yearsFmt)ax.xaxis.set_minor_locator(months)8.4延伸高级任务:绘制股票走势图148.4.1读入npz文件进行绘制datemin=datetime.date(np.datetime64(r.date.min()).astype(object).year,1,1)datemax=datetime.date(np.datetime64(r.date.max()).astype(object).year+1,1,1)ax.set_xlim(datemin,datemax)#formatthecoordsmessageboxdefprice(x):return'$%1.2f'%xax.format_xdata=mdates.DateFormatter('%Y-%m-%d')ax.format_ydata=priceax.grid(True)#rotatesandrightalignsthexlabels,andmovesthebottomofthe#axesuptomakeroomforthemfig.autofmt_xdate()8.4延伸高级任务:绘制股票走势图158.4.1读入npz文件进行绘制#读取AAPL.csv文件,并绘制AAPL股票走势图importosfromdatetimeimportdatetimeimportnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlib.cbookascbookwithcbook.get_sample_data(os.getcwd()+'/sample_data/AAPL.csv',asfileobj=True,np_load=True)asdatafile:f=datafiletitle=f.readline().strip().split(",")print(title)data=np.loadtxt(f,dtype={'names':('Date','Open','High','Low','Close','AdjClose','Volume'),'formats':('S10','<f8','<f8','<f8','<f8','<f8','i')},delimiter=",")#i=integer,<f8=0.256,f8=0.25600001298浮点类型,#S10="MM-DD-YYYY"字符串类型,长度为10

8.4延伸高级任务:绘制股票走势图168.4.2读入csv文件进行绘制

#转为列表格式

lists2=[]forrowinrange(len(data)):txt=data[row]tmp=[]forcolinrang

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论