图表是最能直观展示数据所汇总的结果,特别是在大数据时代,庞大的数据量让我们目不暇接。如股票市场就是最典型的案例,如果没有图表的展示,巨量的大数据一定会让我们无所适从,通过图表的描述,我们才能得以从浩瀚的数据海洋中解脱出来,一目了然的了解市场整体的走向,从而影响到我们的判断及动作。可以说,图表是大数据直观展示最为重要的一环。图表具有多样性,可以根据不同来源的数据给出不同的展示方式。
本章中主要讨论由电子表格 Excel 承载的数据所产生的图表。其中包括常用的柱状图、饼图、拆线图、散点图、直方图、密度图、面积图、环形图、雷达图等。通过以不同图表对数据的展示,可以从不同的角度了解分析大量数据里隐含的规律性,从而提高对事物的了解程度,并可作为各种预测与决策的依据。
实例01:绘制条形图
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“饮料全表”工作表,以“品名”和“单价”建立条形图。
- import matplotlib.pyplot as plt
- import pandas as pd
- import numpy as np
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('d:/abc/例题锦集.xlsx',sheet_name="饮料全表")
- fig,axes=plt.subplots(2,1)
- data=pd.Series(list(stu['单价']),index=list(stu['品名']))
- data.plot.bar(ax=axes[0],color='k',alpha=0.7,rot=0)
- data.plot.barh(ax=axes[1],color='k',alpha=0.7)
- plt.show()
教学视频:
/Upload/image/20220807085522_6858.mp4
实例02:绘制散点图
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售额度”工作表,以“月份”为X轴,“销售额”为Y轴建立散点图。
- import pandas as pd
- import matplotlib .pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('D:/abc/例题锦集.xlsx',sheet_name="销售额度")
- stu.plot.scatter(x='月份',y='销售额') #建立散点图
- plt.show()
教学视频:
/Upload/image/20220807085821_6498.mp4
实例03:绘制普通柱状图
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“饮料全表”工作表,以“品名”、“单价”为依据建立柱状图。
- import pandas as pd
- import matplotlib .pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('d:/abc/例题锦集.xlsx',sheet_name="饮料全表")
- plt.bar(stu.品名,stu.单价) #建立柱型图
- plt.show()
教学视频:
/Upload/image/20220807090009_6380.mp4
实例04:分组柱状图及优化
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“饮料全表”工作表,以“品名”、“数量”、“总价”为依据建立柱状图。
- import pandas as pd
- import matplotlib .pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('d:/abc/例题锦集.xlsx',sheet_name='饮料全表')
- stu.sort_values(by='数量',inplace=True,ascending=False) #排序
- stu.plot.bar(x='品名',y=['数量','总价']) #建立柱型图
- plt.title('饮料销售情况',fontsize=16,fontweight='bold') #设置图表标题及字体字号
- plt.xlabel('品名',fontweight='bold') #设置图表行标题
- plt.ylabel('数量/总价',fontweight='bold') #设置图表列标题
- ax=plt.gca()
- ax.set_xticklabels(stu['品名'],rotation=360) #旋转行标题
- plt.show()
教学视频:
/Upload/image/20220808090839_0112.mp4
实例05:绘制叠加柱状图
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售情况”工作表,以“1月销量”、“2月销量”“3月销量”、“4月销量”为依据建立叠加柱状图。
- import pandas as pd
- import matplotlib .pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('d:/abc/例题锦集.xlsx',sheet_name="销售情况")
- stu.plot.barh(y=['1月销量','2月销量','3月销量','4月销量'],stacked=True) #建立柱形图
- plt.title("饮料销量情况图",fontsize=16,fontweight='bold') #建立图表标题
- plt.ylabel("数量",fontsize=12,fontweight='bold') #设置图表Y轴
- ax=plt.gca()
- ax.set_xticklabels(stu['品名'],rotation=360) #旋转行标题
- plt.show()
教学视频:
/Upload/image/20220808091006_0256.mp4
实例06:绘制普通饼图
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售情况”工作表,以“1月销量”为依据建立饼图。
- import pandas as pd
- import matplotlib .pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('d:/abc/例题锦集.xlsx',sheet_name="销售情况",index_col="品名")
- stu['1月销量'].plot.pie() #建立饼图
- plt.show()
教学视频:
/Upload/image/20220808091143_6958.mp4
实例07:饼图优化
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售情况”工作表,以“1月销量”为依据建立饼图。
- import pandas as pd
- import matplotlib.pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('d:/abc/例题锦集.xlsx',sheet_name="销售情况",index_col="品名")
- stu['1月销量'].plot.pie(fontsize=8,counterclock=False,startangle=-270) #建立饼图
- plt.title("饮料销量情况图",fontsize=20,fontweight='bold') #加入标题
- plt.ylabel('1月销量',fontsize=14,fontweight='bold') #重新设置列标题
- plt.show()
教学视频:
/Upload/image/20220808091307_2203.mp4
实例08:绘制环形图
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售报表”工作表,对各种“品名”以“销售数量”方式建立环形图。
- import pandas as pd
- import matplotlib.pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('D:/abc/例题锦集.xlsx',sheet_name="销售报表")
- x=stu['品名']
- y=stu['销售数量']
- plt.pie(y,labels=x,autopct='%.2f%%',pctdistance=0.85,radius=1.0,labeldistance=1.1,wedgeprops={'width':0.3,'linewidth':2,'edgecolor':'white'}) #制作圆环图
- plt.title(label='产品销售数量占比图',fontdict={'color':'black',\
- 'size':20},loc='center')
- plt.show()
教学视频:
/Upload/image/20220808091453_8540.mp4
实例09:绘制直方图
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“服装销售”工作表,以“月销售额”建立直方图。
- import pandas as pd
- import matplotlib .pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('D:/abc/例题锦集.xlsx',sheet_name="服装销售")
- stu.月销售额.plot.hist() #建立直方图
- plt.show()
教学视频:
/Upload/image/20220808091623_3212.mp4
实例10:直方图优化
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“服装销售”工作表,以“月销售额”建立直方图。
- import pandas as pd
- import matplotlib .pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('D:/abc/例题锦集.xlsx',sheet_name="服装销售")
- stu.月销售额.plot.hist(bins=30) #建立直方图
- plt.xticks(range(5,40,10),fontsize=8,rotation=90) #设置X轴间隔
- plt.show()
教学视频:
/Upload/image/20220808091748_6336.mp4
实例11:绘制密度图
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“股票数据”工作表,以“最高”建立密度图。本例中需要安装外部库pip installscipy。
- import pandas as pd
- import matplotlib .pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('D:/abc/例题锦集.xlsx',sheet_name="股票数据",index_col='股票名称')
- stu.最高.plot.density() #建立密度图
- plt.show()
教学视频:
/Upload/image/20220808095034_9181.mp4
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售数量”工作表,以“农夫山泉”为依据建立折线图。
- import pandas as pd
- import matplotlib .pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('d:/abc/例题锦集.xlsx',sheet_name="销售数量")
- stu.plot(y='农夫山泉') #建立拆线图
- plt.show()
教学视频:
/Upload/image/20220808095152_7841.mp4
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售数量”工作表,以“农夫山泉”为依据建立折线图。
- import pandas as pd
- import matplotlib .pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('d:/abc/例题锦集.xlsx',sheet_name="销售数量")
- stu.plot(y=['农夫山泉']) #建立拆线图
- plt.title("饮料销量情况图",fontsize=16,fontweight='bold') #加入标题
- plt.xlabel("产品名称",fontsize=12,fontweight='bold') #设置X轴
- plt.ylabel("销售数量",fontsize=12,fontweight='bold') #设置Y轴
- plt.show()
教学视频:
/Upload/image/20220808095312_0444.mp4
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售数量”工作表,以“农夫山泉”、“加多宝”“可口可乐”、“红牛饮料”为依据建立叠加折线图。
- import pandas as pd
- import matplotlib .pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('d:/abc/例题锦集.xlsx',sheet_name="销售数量")
- stu.plot.area(y=['农夫山泉','加多宝','可口可乐','红牛饮料']) #建立拆线图
- plt.title("饮料销量情况图",fontsize=16,fontweight='bold') #加入标题
- plt.xlabel("产品名称",fontsize=12,fontweight='bold') #设置X轴
- plt.ylabel("销售数量",fontsize=12,fontweight='bold') #设置Y轴
- plt.show()
教学视频:
/Upload/image/20220808095433_0478.mp4
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售数量”工作表,以“农夫山泉”、“加多宝”“可口可乐”、“红牛饮料”为依据建立多折线图。
- import pandas as pd
- import matplotlib .pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('d:/abc/例题锦集.xlsx',sheet_name="销售数量")
- stu.plot(y=['农夫山泉','加多宝','可口可乐','红牛饮料']) #建立拆线图
- plt.title("饮料销量情况图",fontsize=16,fontweight='bold') #加入标题
- plt.xlabel("产品名称",fontsize=12,fontweight='bold') #设置X轴
- plt.ylabel("销售数量",fontsize=12,fontweight='bold') #设置Y轴
- plt.show()
教学视频:
/Upload/image/20220808095602_6449.mp4
题目:将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售额度”工作表,以“月份”为X轴,“销售额”为Y轴建立气泡图。
- import pandas as pd
- import matplotlib.pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('D:/abc/例题锦集.xlsx',sheet_name="销售额度")
- size=stu['销售额'].rank() #先定义气泡大小
- n=20 #n 为倍数,用来调节气泡的大小
- plt.scatter(stu['月份'],stu['销售额'],s=size*n,alpha=0.6) #建立气泡图
- plt.show()
教学视频:
/Upload/image/20220808095719_7931.mp4
实例17:绘制雷达图
题目:将D:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“班级成绩”工作表,以“班级”为依据建立雷达图。
- import pandas as pd
- import numpy as np
- import matplotlib.pyplot as plt
- df=pd.read_excel('d:\\abc\\例题锦集.xlsx',sheet_name="班级成绩")
- df=df.set_index('科目') #设置行索引
- def plot_ldb(data,feature): #自定义函数
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #解决坐标轴值为负数时无法正常显示负号的问题
- cols=['语文','数学','外语','物理','化学'] #指定各个班级要显示的各科的名称
- colors=['green','blue','red'] #为每个班级设置图表中的显示颜色
- angles=np.linspace(0.1*np.pi,2.1*np.pi,len(cols),endpoint=False) #根据要显示的科目个数对圆形进行等分
- angles=np.concatenate((angles,[angles[0]])) #连接刻度线数据
- fig=plt.figure(figsize=(8,8)) #设置显示图表的窗口大小
- ax=fig.add_subplot(111,polar=True) #设置图表在窗口中的显示位置,并设置坐标轴为极坐标体系
- for i,c in enumerate(feature):
- stats=data.loc[c] #获取班级对应的科目数据
- stats=np.concatenate((stats,[stats[0]])) #连接班级的指标数据
- ax.plot(angles,stats,'-',linewidth=6,c=colors[i],label='%s'%(c)) #制作雷达图
- ax.fill(angles,stats,color=colors[i],alpha=0.25) #为雷达图填充颜色
- ax.legend() #为雷达图添加图例
- ax.set_xticklabels(close)
- ax.set_yticklabels([]) #隐藏坐标轴数据
- plt.show() #显示制作的雷达图
- return fig
- fig=plot_ldb(df,['甲班','乙班','丙班']) #调用自定义函数制作雷达图
- plt.show()
教学视频:
/Upload/image/20220808154203_0612.mp4
题目:将D:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售报表”工作表,以“销售数量”为依据建立面积图。
- import pandas as pd
- import matplotlib.pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #解决显示问题
- stu=pd.read_excel('D:/abc/例题锦集.xlsx',sheet_name="销售报表")
- stu1=pd.DataFrame(stu['销售数量'])
- stu1.plot.area(stacked=False)
- plt.show()
教学视频:
/Upload/image/20220808154418_3713.mp4
题目:将D:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售情况”工作表,以“1月销量”“2月销量”“3月销量”“品名”为依据建立叠加区域图。
- import pandas as pd
- import matplotlib.pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
- plt.rcParams['axes.unicode_minus']=False #正常显示负号
- stu=pd.read_excel('d:\\abc\\例题锦集.xlsx',sheet_name="销售情况",index_col="品名")
- stu.plot.area(y=['1月销量','2月销量','3月销量']) #建立叠加区域图
- plt.title('月份销售情况',fontsize=16,fontweight='bold')
- plt.ylabel('总量',fontsize=12,fontweight='bold')
- plt.show()
教学视频:
/Upload/image/20220808154539_0210.mp4
题目:通过Tushare输出代码为“300111”(向日葵)的股票在2009年1月之后的股价变化趋势图表。
- import pandas as pd
- import tushare as ts #调用财经数据接口包
- import matplotlib.pyplot as plt
- frame=ts.get_k_data('300111',start='2009-01-01') #查询“向日葵”股票信息
- frame=frame.set_index('date') #为日期设置索引
- frame.index=pd.to_datetime(frame.index) #获取指定的日期
- plt.plot(frame['close']) #绘制基础走势图
- plt.show()
教学视频:
/Upload/image/20220808154703_4712.mp4
题目:将D:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“销售报表”工作表,以“序号”为索引建立新的工作表,并将工作簿以“466.xlsx”为名保存在相同文件夹中。
- import pandas as pd
- import numpy as np
- stu=pd.read_excel('D:/abc/例题锦集.xlsx',sheet_name="销售报表",index_col='序号')
- stu['Year']=pd.DatetimeIndex(stu['销售日期']).year
- pt1=stu.pivot_table(index='类别',columns='Year',values='销售数量',aggfunc=np.sum)
- pt1.to_excel('d:/abc/466.xlsx') #写入Excel文件中
教学视频:
/Upload/image/20220808154822_0212.mp4
<本 章 完>
还可以输入200个字
蝈蝈派【海南省教改项目(Hnjg2022-80)支持】 网站版权所有
Python remained the copyright of our website