pandas versus Excel 笔记3(绘图操作)

柱状图,叠加柱状图,饼图,折线图,叠加区域图,散点图,直方图,密度图

1.柱状图

基本柱状图

在这里插入图片描述

import pandas as pd
import xlrd
import matplotlib.pyplot as plt
students=pd.read_excel('E:/ruanjianDM/pycharm+DM/pandas-Excel/Students.xlsx')
students.sort_values(by='Number',ascending=False,inplace=True)#排完序后,生成一个新的DataFrame,inplace替代
print(students)
students.plot.bar(x='Field',y='Number',color='orange',title='International Students')
#plt.bar(students.Field,students.Number,color='orange')
plt.show()

在这里插入图片描述
在这里插入图片描述

美化柱状图

plt.bar(students.Field,students.Number,color='orange')
#横坐标刻度标签旋转45
plt.xticks(students.Field,rotation=45)
#横纵轴标签
plt.xlabel('Field')
plt.ylabel('Number')
#设置标题
plt.title('International Students',size=16)
plt.show()

在这里插入图片描述

分组柱状图&图标优化

在这里插入图片描述

import pandas as pd
import xlrd
import matplotlib.pyplot as plt
students=pd.read_excel('E:/ruanjianDM/pycharm+DM/pandas-Excel/Students1.xlsx')
students.sort_values(by='2017',inplace=True,ascending=False)
students.plot.bar(x='Field',y=['2016','2017'],color=['orange','red'])
#这里不能调整字号
plt.title('International Student by Field',fontsize=16,fontweight='bold')
plt.xlabel('Field',fontweight='bold')
plt.ylabel('Number',fontweight='bold')
ax=plt.gca()#获得当前轴
ax.set_xticklabels(students['Field'],rotation=45,ha='right')#ha  以右边的点旋转
f=plt.gcf()#获得当前figure
f.subplots_adjust(left=0.2,bottom=0.42)#调整图形空白部分,左边为20%,下面为42%
plt.show()

**~~注意:此时横坐标轴旋转不能用plt.xtick(students.Field,rotation=45),因为此处是dataframe对象调用的plot,而上面是plt。**
在这里插入图片描述

叠加柱状图

在这里插入图片描述

import pandas as pd
import xlrd
import matplotlib.pyplot as plt
users=pd.read_excel('E:/ruanjianDM/pycharm+DM/pandas-Excel/Users.xlsx')
users.plot.bar(x='Name',y=['Oct','Nov','Dec'],stacked=True)#stacked是否折叠,默认false
users['Total']=users['Oct']+users['Nov']+users['Dec']#排序准备工作
users.sort_values(by='Total',inplace=True,ascending=False)
plt.show()
"绘制水平柱状图"
users.plot.barh(x='Name',y=['Oct','Nov','Dec'],stacked=True)
plt.title('User Behavior',fontsize=16,fontweight='bold')
plt.show()

在这里插入图片描述在这里插入图片描述

2.饼图

在这里插入图片描述

import pandas as pd
import xlrd
import matplotlib.pyplot as plt
students=pd.read_excel('E:/ruanjianDM/pycharm+DM/pandas-Excel/Students1.xlsx')
students.index=students['Field']#将Field设置为ID

students['2017'].sort_values().plot.pie(fontsize=8,startangle=-270)
#pandas画出的饼图是逆时针,excel是顺时针,值升序,大的在后面,在调整起始角度,就和excel一样了
plt.title('student',fontsize=16,fontweight='bold')
plt.ylabel('2017',fontsize=12,fontweight='bold')
plt.show()

在这里插入图片描述

3.折线图

在这里插入图片描述

import pandas as pd
import matplotlib.pyplot as plt

weeks = pd.read_excel('E:/ruanjianDM/pycharm+DM/pandas-Excel/Weeks.xlsx', index_col='Week')

# weeks.plot(y=['Accessories', 'Bikes', 'Clothing', 'Components'])#折线图,图一
weeks.plot.area(y=['Accessories', 'Bikes', 'Clothing', 'Components'])#叠加区域图,图2
plt.title('Sales Trends', fontsize=16, fontweight='bold')
plt.xticks(weeks.index, fontsize=8)
plt.show()

在这里插入图片描述
在这里插入图片描述
叠加区域图也是将四个值加起来,可以看趋势。与叠加柱状图类似,柱状图不可看趋势。

4.散点图

ruo’y
在这里插入图片描述

import pandas as pd
import matplotlib.pyplot as plt
pd.options.display.max_columns=777#是为了显示所有的列
homes = pd.read_excel('E:/ruanjianDM/pycharm+DM/pandas-Excel/home_data.xlsx')

homes.head()
homes.plot.scatter(x='sqft_living',y='price')
plt.show()

在这里插入图片描述
在这里插入图片描述

5. 直方图

import pandas as pd
import matplotlib.pyplot as plt
pd.options.display.max_columns=777
homes = pd.read_excel('E:/ruanjianDM/pycharm+DM/pandas-Excel/home_data.xlsx')
homes.sqft_living.plot.hist(bins=100)#100区间画一个小条
plt.xticks(range(0,max(homes.sqft_living),500),fontsize=8,rotation=90)
plt.show()

在这里插入图片描述
注意:plt.画图函数,xlable,ylable,dataframe.画图函数,xxticks

6.密度图

密度图实际上就是概率上的密度函数,可以看出多大可能做出什么决策。
注意,若出现在这里插入图片描述
需要重新安装numpy包参考链接

import pandas as pd
import scipy 
import matplotlib.pyplot as plt
pd.options.display.max_columns=777
homes = pd.read_excel('E:/ruanjianDM/pycharm+DM/pandas-Excel/home_data.xlsx')
homes.sqft_living.plot.kde()
plt.xticks(range(0,max(homes.sqft_living),500),fontsize=8,rotation=90)
plt.show()

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值