Python数据分析系列(八):python可视化模块—利用pandas绘制图表


前言

Pandas的绘图函数基于Matplotlib。Pandas数据提供了方便的绘图函数,可以直接调用绘图。不仅包括常用的点、线、柱形图、饼图,还包括直方图、核密度曲线图等统计图形。


一、Pandas绘图基本方法

方法一:利用plot模块

通过数据(Series或DataFrame)的plot属性调用绘图函数。

import pandas as pd
import matplotlib.pyplot as plt

d=pd.DataFrame({
   "x":np.arange(10)})
d['y']=d['x']**2

d.plot.line(x='x',y='y')

plt.show()
绘图函数 描述
df.plot.scatter(x=‘col1’,y=‘col2’) 散点图。(Series数据类型不支持)
d.plot.line(x=‘col1’,y=‘col2’) 折线图。
d.plot.area(x=‘col1’,y=‘col2’) 颜色填充的折线图。
d.plot.bar(x=‘col1’,y=‘col2’) 柱状图。
d.plot.barh(x=‘col1’,y=‘col2’) 水平柱状图。
d.plot.pie(y=‘col2’) 饼状图,只需要指定y值。
d.plot.hist() 直方图,用柱形图显示数据分布密度。
d.plot.dendity() 核密度分布图,用指定的核密度函数(数据假定或已知的分布函数)拟合直方图。
d.plot.box() 箱型图,用一个箱型图显示一列数据的最小值,25%分位值,中位数,75%分位值,最大值。
d.hexbin() 在x,y坐标处绘制平面六边形,用六边形颜色表示x,y坐标出现的次数。

方法二:利用plot函数

直接调用plot函数。

# 导入库
import pandas as pd
import matplotlib.pyplot as plt

# 初始化数据
d=pd.DataFrame({
   'x':np.arange(10)})
d['y']=d['x']**2

# 绘图
d.plot(x='x', y='y', kind="line")      #调用plot函数绘图,指定图形类别为折线图

# 显示
plt.show()
函数 描述
df.plot(x=‘col1’,y=‘col2’,kind=‘scatter’) 散点图。
d.plot(x=‘col1’,y=‘col2’,kind=‘line’) 折线图。
d.plot(x=‘col1’,y=‘col2’,kind=‘area’) 颜色填充的折线图。
d.plot(x=‘col1’,y=‘col2’,kind=‘bar’) 垂直柱状图。
d.plot(x=‘col1’,y=‘col2’,kind=‘barh’) 水平柱状图。
d.plot(y=‘col2’,kind=‘pie’) 饼状图,只需要指定y值。
d.plot(kind=‘hist’) 直方图,用柱形图显示数据分布密度。
d.plot(kind=‘dendity’) 核密度分布图,用指定的核密度函数(数据假定或已知的分布函数)拟合直方图。
d.plot(kind=‘box’) 箱型图,用一个箱型图显示一列数据的最小值,25%分位值,中位数,75%分位值,最大值。
d.plot(kind=‘hexbin’) 在x,y坐标处绘制平面六边形,用六边形颜色表示x,y坐标出现的次数。

控制参数说明

  • 图形
参数 说明
ax 要在其上进行绘制的matplotlib subplot对象,如果没有设置,则使用当前matplotlib subplot
label 用于图例的标签
  • 样式
参数 说明
style 将要传给matplotlib的风格字符串(如‘ko–')
alpha 图表的填充不透明度(0到1之间)
kind 可以是’line’,‘bar’,‘barh’,‘kde’
  • 坐标轴设置
参数 说明
logx True/False,是否在X轴上使用对数标尺
logy True/False,是否在Y轴上使用对数标尺
use_index 将对象的索引用作刻度标签
rot 旋转刻度标签(0到360)
xticks 用作X轴刻度的值
yticks 用作Y轴刻度的值
xlim X轴的界限(例如[0,10])
ylim Y轴的界限(例如[0,10])
grid 显示轴网格线(默认打开)
  • 专用于dataframe的plot参数说明
参数 说明
subplots 将各个DataFrame列绘制到单独的subplot中。
sharex 如果subplots=True,则共用同一个x轴,包括刻度和界限。
sharey 如果subplots=True, 则共用同一个y轴,包括刻度和界限。
figsize 表示图像大小的元组。
title 表示图像标题的字符串。
legend 添加一个subplot图例(默认为True)。
sort_columns 以字母表顺序绘制各列,默认使用当前列顺序。

注意: plot函数与plot模块等效,除了通过kind参数指定绘图方法。其他参数完全相同。

二、Pandas绘制图形

series数据调用绘图函数时,不用指定x,y数据,默认把series数据作为y坐标数据,用自然数[0,1,2,…]作为x坐标数据。

1.散点图

  • dataframe数据
import numpy as np
import pandas as pd

x=np.arange(5)
y=np.random.randint(10,size=5)
df=pd.DataFrame({
   'x':x,'y':y})

# plot模块
df.plot.scatter(x='x',y='y')

# plot函数
df.plot(x='x',y='y',kind='scatter')

在这里插入图片描述

  • 注意:

Series不支持scatter函数,且x,y坐标长度必须相同。

  • df.plot.scatter(x=['col1','col2'],y=['col3','col4'])
    • (col1,col3)和(col2,col4)分别作为x,y坐标绘制散点图。
    • x,y必须都是列表,且列表长度必须相同。

scatter绘制多列数据与其他函数都不同。与线条等图形相比,不同的数据列表示不同的线条,但是散点图没有这个概念,所有的散点都是同一个序列的。所以,同一个图形中可以绘制多条曲线,但是在散点图中不论多少个数据列,都合并为一个散点序列。

  • scatter函数支持所有数据参数调用方式:
import pandas as pd
df=pd.DataFrame({
   'col1':[1,2,3,4],'col2':[2,3,2,4],'col3':[3,1,2,1.5],'col4':[3,4,5,8]},index=['a','b','c','d'])
  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值