Pandas-可视化详解

 

目录

  1.折线图

  2. 柱状图

  3. 直方图

  4.箱线图

  5.区域图

  6.散点图

       7.饼图

  8.六边形容器图


数据分析的结果不仅仅只是你来看的,更多的时候是给需求方或者老板来看的,为了更直观地看出结果,

数据可视化是必不可少的一个环节。这里带大家来看下一些常用的图形的画法。

  数据准备

1

2

3

4

5

6

7

8

9

10

# 导入相关库

import numpy as np

import pandas as pd

 

import matplotlib.pyplot as plt

import matplotlib

# matplotlib.style.use("ggplot")

%matplotlib inline #总结:%matplotlib inline 可以在Ipython编译器里直接使用,功能是可以内嵌绘图,并且可以省略掉plt.show()这一步。

 

np.random.seed(100)

Pandas 的数据可视化的实现底层依赖于 matplotlib,所以画图时很多基础知识需要涉及到 matplotlib。
画图其实就是跟各种数字打交道,这里我们先给伪造一些数据。

1

2

3

4

5

6

7

8

9

10

df = pd.DataFrame(np.random.randint(-1010, (103)), index=pd.date_range("1/1/2000", periods=10), columns=list("ABC"))

df = df.cumsum()

df.head()

Out[112]:

            A   B   C

2000-01-01 -2  -7  -3

2000-01-02  3  -1  -3

2000-01-03 -5  -9 -11

2000-01-04 -1 -17  -4

2000-01-05  5 -12 -10

  1.折线图

  生成数据之后,我们看下如何进行画图。其实非常简单的,调用 plot 方法就可以看到画图的结果了。默认情况下参数 kind="line" 表示图的类型为折线图。通过折线图可以看出数据随着某个变量的变化趋势。

1

df.plot()

1

df.plot(x="A",y="C")

  

  2. 柱状图

  通过柱状图可以对比多个值的差别。如果想要画出柱状图,可以将参数 kind 设置为 bar 或者 barh。

1

2

df.plot(kind="bar")

plt.show()

可以看到,设置 kind="bar" 之后,图形以索引为 x 轴, 列为 y 轴。

1

2

df.plot(kind="barh")

plt.show()

可以看到,设置 kind="barh" 之后,图形以列为 x 轴, 索引为 y 轴。同样我们也可以自己指定 x 轴和 y 轴。

 

1

2

3

#自己设定x轴y轴

df.plot(kind="bar",x="A",y=["B","C"])

plt.show()

 

#此外,如果想要生成堆叠条形图的haunted,可以设置参数 stacked=True。

1

2

df.plot(kind="bar",stacked=True)

plt.show()

 

  3. 直方图

  直方图是一种展示数据频数/率的特殊的柱状图。如果想要画出直方图,可以将参数 kind 设置为 hist。可以通过设置参数 bins 来改变 bin 的大小。

1

2

df.plot(kind="hist")

plt.show()

1

2

df.plot(kind="hist",bins=5)

plt.show()

  

  4.箱线图

通过箱线图可以展示出分位数,具体包括上四分位数、下四分位数、中位数以及上下5%的极值。如果想要画出箱线图,可以将参数 kind 设置为 box。

1

2

df.plot(kind="box")

plt.show()

  5.区域图

  如果想要画出区域图,可以将参数 kind 设置为 area。默认情况下,区域图是堆积的,要生成堆积的区域图图,每列必须全部为正值或全为负值。

1

2

df.abs().plot(kind="area")

plt.show()

  

想要生成不堆积的区域图,设置参数 stacked=False 即可。

1

2

df.plot(kind="area", stacked=False)

plt.show()

  

  6.散点图

  如果想要画出散点图,可以将参数 kind 设置为 scatter,同时需要指定 x 和 y。通过散点图可以探索变量之间的关系。

1

2

df.plot(kind="scatter", x="A", y="B")

plt.show()

 

可以设置参数 c 作为列的名称以为每个点提供颜色。

1

2

df.plot(kind="scatter", x="A", y="B", c="C")

plt.show()

  

#如果想要在单个轴上绘制多个列组,需要指定 ax。

1

2

3

ax = df.plot(kind="scatter", x="A", y="B", color="blue")

df.plot(kind="scatter", x="C", y="B", color="green", ax=ax)

plt.show()

  

7.饼图

如果想要画出饼图,可以将参数 kind 设置为 scatter。

1

2

3

= df.A[:5]

a.abs().plot.pie(subplots=False,figsize=(4,4))

plt.show()

  

1

2

a.abs().plot.pie(subplots=True,figsize=(4,4))

plt.show()

如果想要自动计算出比例,可以设置参数 autopct。

1

2

a.abs().plot.pie(subplots=True, figsize=(44), autopct="%.2f")

plt.show()

  

  8.六边形容器图

  在绘制散点图时,如果数据过于密集,则无法单独绘制出每个点,这时候可以考虑 Hexbin 图。
  其中,左边坐标表示的是值的分布,右边坐标表示的是数据量大小与颜色的对比。一个有用的关键字参数是 gridsize ; 它控制x方向的六边形数量,并且默认为100.较大的格栅意味着更多的较小的分区。

1

2

3

4

df = pd.DataFrame(np.random.randn(10002), columns=["A""B"])

df["B"= df["B"+ np.arange(1000)

df.plot(kind="hexbin", x="A", y="B", gridsize=10)

plt.show()

  

 

1

2

df.plot(kind="hexbin", x="A", y="B", gridsize=20)

plt.show()

  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值