0
点赞
收藏
分享

微信扫一扫

matplotlib + pandas——数据可视化


利用pandas进行数据分析 + matplotlib进行可视化展示

  • ​​1 第一个绘图​​
  • ​​2 pandas利用DataFrame的plot方法绘图​​
  • ​​3 pandas利用DataFrame绘图柱状图/堆积图(加载csv数据)​​
  • ​​4 pandas绘图频率直方图(加载csv文件)​​
  • ​​5 pandas绘图箱型图 ​​
  • ​​6 利用pandas 处理后的数据绘图​​
  • ​​6.1◆条形图​​
  • ​​6.2◆折线图​​
  • ​​7 利用pandas 绘制柱状堆积图​​
  • ​​8 利用pandas 绘制点状图​​
  • ​​8.1◆绘制 散点图​​
  • ​​8.2◆绘制 气泡图​​
  • ​​9 利用pandas 绘制饼图​​


1 第一个绘图

​ (原本在matplotlib中需要几段代码,在pandas中只需要一行代码) ​​​​import pandas as pd import numpy as np import matplotlib.pyplot as plt # Series 默认索引为x轴 s = pd.Series( np.random.randn(10).cumsum() #产生一个10行4列的随机数 index = np.arange(0,100,10) #0-100之间,以10作为分割 ) s.plot() plt.show()​

2 pandas利用DataFrame的plot方法绘图

​df = pd.DataFrame(np.random.randn(10,4), #生成10行4列标准正态分布的数据 columns = list('ABCD'), index = np.range(0,100,10) #指定索引为 x 轴​


3 pandas利用DataFrame绘图柱状图/堆积图(加载csv数据)

​案例1 fig = plt.figure() fig,axes = plt.subplots(2,1) data = pd.Series(np.random.randn(16), index = list('abcdefghijklmnop')) data.plot(kind = 'bar',ax = axes[0],color = 'k',alpha data.plot(kind = 'barh',ax = axes[1],color = 'k',alpha plt.show()​


4 pandas绘图频率直方图(加载csv文件)

​df = pd.read_excel('./pandas-matplotlib.xlsx','Sheet1') #导入数据文件 fig = plt.figure() # 创建画板 ax = fig.add_subplot(111) # 创建绘图区域 fig.set_size_inches(10,5) # 设置已创建画布大小 ax.hist(df['Age'],bins = 7) # 绘制频率直方图 plt.title('年龄平均分布图') plt.xlabel('Age') plt.ylabel('Employee') plt.show()​​​​pandas-matplotlib.xlsx中 Sheet1 数据如下: ​EMPIDGenderAgeSalesBMIIncomeE001M34123Normal350E002F40114Overweight450E003F37135Obesity169E004M30139Underweight189E005F44117Underweight183E006M36121Normal80E007M32133Obesity166E008F26140Normal120E009M32133Normal75E010M36133Underweight40

5 pandas绘图箱型图

​df = pd.read_excel('./pandas-matplotlib.xlsx','Sheet1') #导入数据文件 fig = plt.figure() ax = fig.add_subplot(111) ax.boxplot(df['Age']) #绘制箱型图​

6 利用pandas 处理后的数据绘图
6.1◆条形图

​var = df.groupby('Gender').Sales.sum() fig = plt.figure() ax1 = fig.add_subplot(211) ax1.set_xlabel('Gender') ax1.set_ylabel('Sum of Sales') ax1.set_title('Gender wise Sum of Sales') var.plot(kind = 'bar')​

6.2◆折线图

​line = df.groupby('BMI').Sales.sum() #print(line) ax1 = fig.add_subplot(212) ax1.set_xlabel('BMI') ax1.set_ylabel('Sum of Sales') ax1.set_title('BMI wise Sum of Sales') line.plot(kind = 'line') plt.tight_layout() plt.show()​

7 利用pandas 绘制柱状堆积图

​df = pd.read_excel('./excel/pandas-matplotlib.xlsx','Sheet1') #导入数据文件 fig = plt.figure() var = df.groupby(['BMI', 'Gender']).Sales.sum() var.unstack().plot(kind='bar', stacked=True, color=['red', 'blue']) plt.show()​


8 利用pandas 绘制点状图
8.1◆绘制 散点图

​fig = plt.figure() ax1​

8.2◆绘制 气泡图

​df = pd.read_excel('./excel/pandas-matplotlib.xlsx','Sheet1') #导入数据文件 fig = plt.figure() ax = fig.add_subplot(111) ax.scatter(df['Age'], df['Sales'], s=df['Income']) #在散点图上添加第三个参数:表明收入(气泡的大小) ​


9 利用pandas 绘制饼图

​var = df.groupby(['Gender']).sum() x_list = var['Sales'] label_list = var.index plt.axis('equal') plt.pie(x_list, labels=label_list, autopct='%1.1f%%', # 保留两位小时 shadow = True, # 设置阴影 explode=[0,0.1]) # 0 :扇形不分离,0.1:分离0.1单位 plt.title('expense') plt.show()​



举报

相关推荐

0 条评论