Pandas系列(十二)-可视化详解

目录python

  • 1. 折线图
  • 2. 柱状图
  • 3. 直方图
  • 4. 箱线图
  • 5. 区域图
  • 6. 散点图
  • 7. 饼图六边形容器图

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

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

  数据准备

# 导入相关库
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。
画图其实就是跟各类数字打交道,这里咱们先给伪造一些数据。3d

df = pd.DataFrame(np.random.randint(-10, 10, (10, 3)), 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" 表示图的类型为折线图。经过折线图能够看出数据随着某个变量的变化趋势。blog

df.plot()

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

  

  2. 柱状图

  经过柱状图能够对比多个值的差异。若是想要画出柱状图,能够将参数 kind 设置为 bar 或者 barh。索引

df.plot(kind="bar")
plt.show()

能够看到,设置 kind="bar" 以后,图形以索引为 x 轴, 列为 y 轴。编译器

df.plot(kind="barh")
plt.show()

能够看到,设置 kind="barh" 以后,图形以列为 x 轴, 索引为 y 轴。一样咱们也能够本身指定 x 轴和 y 轴。数据分析

 

#本身设定x轴y轴
df.plot(kind="bar",x="A",y=["B","C"])
plt.show()

 

#此外,若是想要生成堆叠条形图的haunted,能够设置参数 stacked=True。pandas

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

 

  3. 直方图

  直方图是一种展现数据频数/率的特殊的柱状图。若是想要画出直方图,能够将参数 kind 设置为 hist。能够经过设置参数 bins 来改变 bin 的大小。io

df.plot(kind="hist")
plt.show()

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

  

  4.箱线图

经过箱线图能够展现出分位数,具体包括上四分位数、下四分位数、中位数以及上下5%的极值。若是想要画出箱线图,能够将参数 kind 设置为 box。

df.plot(kind="box")
plt.show()

  5.区域图

  若是想要画出区域图,能够将参数 kind 设置为 area。默认状况下,区域图是堆积的,要生成堆积的区域图图,每列必须所有为正值或全为负值。

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

  

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

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

  

  6.散点图

  若是想要画出散点图,能够将参数 kind 设置为 scatter,同时须要指定 x 和 y。经过散点图能够探索变量之间的关系。

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

 

能够设置参数 c 做为列的名称觉得每一个点提供颜色。

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

  

#若是想要在单个轴上绘制多个列组,须要指定 ax。

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。

a = df.A[:5]
a.abs().plot.pie(subplots=False,figsize=(4,4))
plt.show()

  

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

若是想要自动计算出比例,能够设置参数 autopct。

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

  

  8.六边形容器图

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

df = pd.DataFrame(np.random.randn(1000, 2), columns=["A", "B"])
df["B"] = df["B"] + np.arange(1000)
df.plot(kind="hexbin", x="A", y="B", gridsize=10)
plt.show()

  

 

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

  

相关文章
相关标签/搜索