失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > json 数据 生成 图表_Python数据分析:手把手教你用Pandas生成可视化图表

json 数据 生成 图表_Python数据分析:手把手教你用Pandas生成可视化图表

时间:2019-04-11 18:57:07

相关推荐

json 数据 生成 图表_Python数据分析:手把手教你用Pandas生成可视化图表

一:

Pandas是什么?

Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。

利器之一:DataFrame

DataFrame是Pandas中的一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。

利器之一:Series

它是一种类似于一维数组的对象,是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据也可产生简单的Series对象。

以下为大家说明下常用的图

一、线型图

对于pandas的内置数据类型,Series 和 DataFrame 都有一个用于生成各类 图表 的 plot 方法。默认情况下, 它们所生成的是线型图。其实Series和DataFrame上的这个功能只是使用matplotlib库的plot()方法的简单包装实现。参考以下示例代码 -

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.randn(10,4),index=pd.date_range('/12/18',

periods=10), columns=list('ABCD'))

df.plot()

Python

执行上面示例代码,得到以下结果 -

如果索引由日期组成,则调用gct().autofmt_xdate()来格式化x轴,如上图所示。

我们可以使用x和y关键字绘制一列与另一列。

s = Series( np. random. randn( 10). cumsum(), index= np. arange( 0, 100, 10))

s. plot()

pandas 的大部分绘图方法都有 一个 可选的ax参数, 它可以是一个 matplotlib 的 subplot 对象。这使你能够在网格 布局 中 更为灵活地处理 subplot 的位置。DataFrame的plot 方法会在 一个 subplot 中为各列绘制 一条 线, 并自动创建图例( 如图所示):

df = DataFrame( np. random. randn( 10, 4). cumsum( 0), ...: columns=[' A', 'B', 'C', 'D'], index= np. arange( 0, 100, 10))

df. plot()

二、柱状图

在生成线型图的代码中加上 kind=' bar'( 垂直柱状图) 或 kind=' barh'( 水平柱状图) 即可生成柱状图。这时,Series 和 DataFrame 的索引将会被用 作 X( bar) 或 (barh)刻度:

In [59]: fig, axes = plt. subplots( 2, 1)

In [60]: data = Series( np. random. rand( 16), index= list(' abcdefghijklmnop'))

In [61]: data. plot( kind=' bar', ax= axes[ 0], color=' k', alpha= 0. 7)

Out[ 61]: < matplotlib. axes. AxesSubplot at 0x4ee7750>

In [62]: data. plot( kind=' barh', ax= axes[ 1], color=' k', alpha= 0.

对于 DataFrame, 柱状 图 会 将 每一 行的 值 分为 一组, 如图 8- 16 所示:

In [63]: df = DataFrame( np. random. rand( 6, 4), ...: index=[' one', 'two', 'three', 'four', 'five', 'six'], ...: columns= pd. Index([' A', 'B', 'C', 'D'], name=' Genus'))

In [64]: df

Out[ 64]:

Genus

A B C D

one 0. 301686 0. 156333 0. 371943 0. 270731

two 0. 750589 0. 525587 0. 689429 0. 358974

three 0. 381504 0. 667707 0. 473772 0. 632528

four 0. 942408 0. 180186 0. 708284 0. 641783

five 0. 840278 0. 909589 0. 010041 0. 653207

six 0. 062854 0. 589813 0. 811318 0. 060217

In [65]: df. plot( kind=' bar')

三、条形图

现在通过创建一个条形图来看看条形图是什么。条形图可以通过以下方式来创建 -

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])

df.plot.bar()

Python

执行上面示例代码,得到以下结果 -

要生成一个堆积条形图,通过指定:pass stacked=True -

import pandas as pd

df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])

df.plot.bar(stacked=True)

Python

执行上面示例代码,得到以下结果 -

要获得水平条形图,使用barh()方法 -

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])

df.plot.barh(stacked=True)

P

四、直方图

可以使用plot.hist()方法绘制直方图。我们可以指定bins的数量值。

import pandas as pd

import numpy as np

df = pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c':

np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])

df.plot.hist(bins=20)

Python

执行上面示例代码,得到以下结果 -

要为每列绘制不同的直方图,请使用以下代码 -

import pandas as pd

import numpy as np

df=pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c':

np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])

df.hist(bins=20)

Python

执行上面示例代码,得到以下结果 -

五、箱型图

Boxplot可以绘制调用Series.box.plot()和DataFrame.box.plot()或DataFrame.boxplot()来可视化每列中值的分布。

例如,这里是一个箱形图,表示对[0,1)上的统一随机变量的10次观察的五次试验。

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])

df.plot.box()

Python

执行上面示例代码,得到以下结果 -

六、块型图

可以使用Series.plot.area()或DataFrame.plot.area()方法创建区域图形。

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])

df.plot.area()

Python

执行上面示例代码,得到以下结果 -

七、散点图

可以使用DataFrame.plot.scatter()方法创建散点图。

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.rand(50, 4), columns=['a', 'b', 'c', 'd'])

df.plot.scatter(x='a', y='b')

Python

执行上面示例代码,得到以下结果 -

八、饼状图

饼状图可以使用DataFrame.plot.pie()方法创建。

import pandas as pd

import numpy as np

df = pd.DataFrame(3 * np.random.rand(4), index=['a', 'b', 'c', 'd'], columns=['x'])

df.plot.pie(subplots=True)

Python

执行上面示例代码,得到以下结果 -

如果觉得《json 数据 生成 图表_Python数据分析:手把手教你用Pandas生成可视化图表》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。