chapter.pandas1.3

pandas可视化

pandas库中集成了matplotlib中的基础组件,可以利用pandas绘制基本的图形。
1.线形图
线形图通常用于秒回两组数据之间的趋势。pandas库中的Series和DataFrame中都有绘制各类图表的plot方法,默认情况为线形图。
例:创建一个Series对象,画线形图。

import numpy as np
from pandas import Series,DataFrame
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline #魔法函数,使用函数绘制的图片会直接显示
s=Series(np.random.normal(size=10))
print(s)
s.plot()

在这里插入图片描述
2.柱状图
柱状图通常描绘各类别之间的关系。
2.1常见柱状图
创建DataFrame数据的售卖的饮品信息

import numpy as np
from pandas import Series,DataFrame
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
from IPython.display import display
%matplotlib inline
data={
    '奶茶品类':['巧克力奶茶','可可奶茶','布丁奶茶','红豆奶茶','皇家奶茶','贵妃奶茶'],
    '数量':[20,25,40,26,37,10]
}
df=DataFrame(data)  
display(df)

在这里插入图片描述
绘制柱状图显示出该信息

import numpy as np
import seaborn as sn
from pandas import Series,DataFrame
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
from IPython.display import display
%matplotlib inline
data={
    '奶茶品类':['巧克力奶茶','可可奶茶','布丁奶茶','红豆奶茶','皇家奶茶','贵妃奶茶'],
    '数量':[20,25,40,26,37,10]
}
df=DataFrame(data)  
display(df)
plt.title('奶茶销量')
sn.barplot(data['奶茶品类'],data['数量'])
plt.show()

在这里插入图片描述
很显然中文字体无法显示,通过查询资料得以解决。

font={
    'family':'kaiti',#自定义字体,这里是楷体
    'weight':'bold',
   
}
width=0.3
matplotlib.rc('font',**font)
import numpy as np
import seaborn as sn
from pandas import Series,DataFrame
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
from IPython.display import display
%matplotlib inline
data={
    '奶茶品类':['巧克力奶茶','可可奶茶','布丁奶茶','红豆奶茶','皇家奶茶','贵妃奶茶'],
    '数量':[20,25,40,26,37,10]
}

df=DataFrame(data)  
display(df)
font={
    'family':'kaiti',
    'weight':'bold',
   
}
width=0.3
matplotlib.rc('font',**font)
plt.title('奶茶销量')
sn.barplot(data['奶茶品类'],data['数量'])
plt.show()

在这里插入图片描述
2.2水平柱状图
创建DataFrame数据

import pandas as pd
import matplotlib as plt
from IPython.display import display
import numpy as np
import random
%matplotlib inline
data=DataFrame(np.random.randint(0,100,size=(3,3)),
              index=('one','tow','three'),
              columns=['A','B','C'])
display(data)

在这里插入图片描述
画水平柱状图

import pandas as pd
import matplotlib as plt
from IPython.display import display
import numpy as np
import random
%matplotlib inline
data=DataFrame(np.random.randint(0,100,size=(3,3)),
              index=('one','tow','three'),
              columns=['A','B','C'])
display(data)
data.plot(kind='barh')#barh水平直方图

在这里插入图片描述
2.3堆积柱状图

import pandas as pd
import matplotlib as plt
from IPython.display import display
import numpy as np
import random
%matplotlib inline
data=DataFrame(np.random.randint(0,100,size=(3,3)),
              index=('one','tow','three'),
              columns=['A','B','C'])
display(data)
data.plot(kind='barh',stacked=True,alpha=0.5)#alpha设置颜色透明度

在这里插入图片描述
3.直方图
直方图用于频率分布,y轴可为数值或比率,统计中使用直方图可以看出其大概分布规律,用hist方法绘制直方图。

import pandas as pd
import matplotlib as plt
import numpy as np
import random
%matplotlib inline
data=Series(np.random.normal(size=100))
data.hist(bins=20,grid=False)

在这里插入图片描述
很显然负号无法显示,通过查阅资料得到以下修改方式,

plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

这里有查到了显示中文的方式,也一并记录下来。

plt.rcParams['font.sans-serif'] = ['SimHei']  #显示中文

加上上述代码之后运行结果

import pandas as pd
import matplotlib as plt
import numpy as np
import random
%matplotlib inline
data=Series(np.random.normal(size=100))
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
data.hist(bins=20,grid=False)

在这里插入图片描述
可以看出负号已经显示。
4.密度图
密度图是将数据的分布近似为正态分布,通过plot函数的kind='kde’绘制

import pandas as pd
import matplotlib as plt
import numpy as np
import random
%matplotlib inline
data=Series(np.random.normal(size=100))
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
data.plot(kind='kde')

在这里插入图片描述
可以通过设置grid参数在图表中添加网格,bins参数是将值分为多少段,默认为10
5.散点图
散点图主要用来表现数据之间的规律
创建dataFrame数据

data=DataFrame({
    'X':[0,2,3,4,5,6,7,8,9,10],
    'Y':[4,5,2,8,4,56,25,24,10,14]
})

完整代码

import pandas as pd
import matplotlib as plt
from IPython.display import display
%matplotlib inline
data=DataFrame({
    'X':[0,2,3,4,5,6,7,8,9,10],
    'Y':[4,5,2,8,4,56,25,24,10,14]
})
display(data)

在这里插入图片描述
画散点图

import pandas as pd
import matplotlib as plt
from IPython.display import display
%matplotlib inline
data=DataFrame({
    'X':[0,2,3,4,5,6,7,8,9,10],
    'Y':[4,5,2,8,4,56,25,24,10,14]
})
display(data)
data.plot(kind='scatter',x='X',y='Y')

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值