Pandas数据分析26——pandas对象可视化.plot()用法和参数

参考书目:《深入浅出Pandas:利用Python进行数据处理与分析》


无论是机器学习还是数据分析等数据科学领域,数据可视化是不可或缺的。pandas数据有专门的可视化方法——.plot(), 当然这个方法有很多参数,而且不同对象画法不一样,r语言这方面做的就很模糊。pandas语法很严谨,可视化依靠matplotlib.pyplot包上进行集成封装。用法都有相识之处,下面一起来学一下pandas对象的plot() 里面的用法和参数。

还是先导入包和读取案例数据

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams ['font.sans-serif'] ='SimHei'               #显示中文
plt.rcParams ['axes.unicode_minus']=False               #显示负号
data = 'https://www.gairuo.com/file/data/dataset/team.xlsx'
df = pd.read_excel(data) 

图形类型

df.plot.line() # 折线的全写方式

df.plot.bar() # 柱状图

df.plot.barh() # 横向柱状图 (条形图)

df.plot.hist() # 直方图

df.plot.box() # 箱形图

df.plot.kde() # 核密度估计图

df.plot.density() # 同

df.plot.kde()

df.plot.area() # 面积图

df.plot.pie() # 饼图

df.plot.scatter() # 散点图

df.plot.hexbin() # 六边形箱体图,或简称六边形图


plot()使用方法

基础用法很简单,就是Series对象或者DataFrame对象进行.plot()就行

#Series 使用 plot 时 x 轴为索引,y 轴为索引对应的具体值:

随机生成一条数据然后画图

ts = pd.Series(np.random.randn(20),index=pd.date_range('1/1/2000', periods=20))
ts.plot()

 #DataFrame 使用 plot 时 x 轴为索引,y 轴为索引对应的多个具体值:

df2 = pd.DataFrame(np.random.randn(6, 4), index=pd.date_range('1/1/2000', periods=6),columns=list('ABCD'))
df2.plot()

 #指定列

DataFrame 在绘图时可以指定 x 和 y 轴的列:
df3 = pd.DataFrame(np.random.randn(1000, 2), columns=['B', 'C']).cumsum()
df3['A'] = pd.Series(list(range(len(df))))
df3.plot(x='A', y='B') # 指定 x 和 y 轴内容

#如果 y 轴需要多个值,可以传入列表:
df3.plot(x='A', y=['B','C'])

plot()参数

#图形类型

 #df.plot() 可以通过参数来指定具体图形类型:

df.plot(kind='pie') # 其他的名称和上文相同
s.plot(kind='pie')

 #X轴和Y轴

 #常用在折线图、柱状图、面积图、散点图等,如果是 Series 则索引是 x 轴,Y 轴里值,无需传入。

# 可以不用写参数名,直接按位置传入
df[:5].plot('name', 'Q1')
df[:5].plot.bar('name', ['Q1', 'Q2'])
df[:5].plot.barh(x='name', y='Q4')
df[:5].plot.area('name', ['Q1', 'Q2'])
df[:5].plot.scatter('name', 'Q3')

 #图形标题

df.set_index('name')[:5].plot(kind='bar',title='前五个同学成绩')


 #字体大小

#指定轴上的字体大小:
df.set_index('name')[:5].plot(fontsize=15)

 X,Y轴上的字明显变大了


线条样式

主要是这个style 来调整。style 可指定图的线条等样式,可参考可选的值 Matplotlib Line-style: 

df[:5].plot(style=':')  # 虚线
df[:5].plot(style='-.') # 虚实相间
df[:5].plot(style='--') # 长虚线
df[:5].plot(style='-')  # 实线(默认)
df[:5].plot(style='.')  # 点
df[:5].plot(style='*-') # 实线,数值为星星
df[:5].plot(style='^-') # 实线,数值为三角形

#对不同线分别给样式:
df.set_index('name')[:5].plot(style=[':', '--', '.-', '*-'])


 背景辅助线

#grid 会给 x 方向和 y 方向增加灰色辅助线: 

df[:5].plot(grid=True)


 图例

图例就是图片左上角或者右上的小案例说明那条颜色的线代表了什么变量名

pandas的plot画法默认会画出图例,当然也可以取消图例

#可以取消图例:
df[:5].plot(legend=False)
#可以反向排序图例:
df[:5].plot(legend='reverse')


 图形大小

 figsize 参数传入一个元组,可以指定图形的宽高英寸值。

df[:5].plot.bar(figsize=(10.5,5))

#当然可以给出全局默认的图形大小: 

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (15.0, 8.0) # 固定显示大小

 色系

#colormap 指定图形的配色,具体值可参考Matplotlib 库的色系表:List of named colors — Matplotlib 3.6.0.dev2928+ga68f21f589 documentation

df[:5].plot.barh(colormap='rainbow')


matplotlib 其他参数 

#此外,还支持 matplotlib 库中的其他参数, 
df[:10].plot.line(color='k') # 图的颜色
df[:5].plot.bar(rot=45) # 主轴上文字的方向度数

 


图像叠加

可以将柱状图和折线图画一起

df['Q1'].head().plot.bar(), df.mean(1).head().plot(color='r')  #Q1和平均成绩

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阡之尘埃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值