数据可视化

直方图

直方图(Histogram)是一种可视化在连续间隔,或者是特定时间段内数据分布情况的图表,经常被用在统计学领域。简单来说,直方图描述的是一组数据的频次分布,例如把年龄分成“0-5,5-10,……,80-85”17个组,统计一下中国人口年龄的分布情况。直方图有助于我们知道数据的分布情况,诸如众数、中位数的大致位置、数据是否存在缺口或者异常值

Numpy

histogram

1
numpy.histogram(a, bins=10, range=None, normed=None, weights=None, density=None)
  • 参数列表
参数 涵义
a 输入数据,一个列表
bins int: 区间数,默认10等分
list: 一个边界的列表
string: 一个用于计算区间宽度的函数
range 计算区间,默认是a.min() - a.max()
normed 废弃
weights 对应a中每个值的比重,只在density为false的时候有用
density 密度,还没搞懂怎么用
  • 返回值
参数 涵义
hist 每个区间的数量
bin_edges 边界列表

bincount

这个函数是个简化版,无法指定具体的区间大小,一般不会用

1
numpy.bincount(x, weights=None, minlength=0)
  • 参数列表
参数 涵义
x 输入数据,一个列表
weights 对应a中每个值的比重,只在density为false的时候有用
minlength 最少的区间数
  • 返回值
参数 涵义
hist 每个区间的数量

pandas

DataFrame.plot.hist()

参数 涵义
column 需要统计的column
by 需要聚合的column
grid 需要聚合的column
xlabelsize 多少个区间
xrot 多少个区间
ylabelsize 多少个区间
yrot 多少个区间
x 横坐标上的标签,一般是DataFrame中某个column的名称,默认为None
y 纵坐标上要显示的column,如果不指定column,则默认会绘制DataFrame中所有对象类型为数值型的columns,非数值对象类型的column不显示
kind 选择图表类型,默认为折线图。可选参数为‘line’(折线图)、‘bar’(柱状图,竖直方向)、‘barh’(柱状图,水平方向)、‘hist’(直方图)、‘box’(箱线图)、‘kde’(核密度估计图)、‘area’(面积图)、‘pie’(饼状图)、‘scatter’(散点图)、‘hexbin’(全成为hexagonal binning,有点类似热点图,用于显示一个区域中点的个数,不过是用正六边形表示数值区域)
ax matplotlib中的axes对象(可以理解为子图对象)。在多子图(使用matplotlib的subplots()函数,或者add_subplot()函数时),可以通过该参数选择在哪个子图上绘制图形。参数默认为None
subplots 是否单独显示每个columns,默认为False。设置为True时,会将每个columns的数据单独在一个子图中显示
sharex 仅作用于”subplots”为True时,是否允许所有的子图共用同一个X轴标签。当“ax”为None时,“sharex”默认为True;当“ax”不为None,“sharex”默认为False,此时每一个子图有自己单独的X轴标签。
sharey 当“ax”不为None或”subplots”为True是,是否允许共用一个Y轴标签,默认为False。
layout 当“subplots”为True时,用于布置图片显示布局,图片按几行、几列显示,参数为元组。
figsize 元组类型,设置图片尺寸。
use_index 是否使用DataFarme的index作为X轴标签,默认为True。当参数“x”不为None时。当DataFrame的index为非数值(包括字符串、datetime等类型),use_index参数设置无效。
title 设置图标标题。
grid 是否显示网格线,默认为False。
legend 是否显示图例,默认为True,图例就是clolumn的名称。
style 设置线型,默认为直线。
xticks 设置X轴上的坐标值,需要数值型序列。
yticks 同”xticks”,作用于Y轴
xlim 设置图片中X轴数值刻度显示的区间范围,元祖类型
ylim 同xlim,作用于Y轴
rot X/Y轴上的刻度值显示时候旋转的角度,水平绘图时旋转X轴坐标,竖直绘图时旋转Y坐标
fontsize 设置X/Y坐标的字体尺寸
colormap 设置图形显示的颜色,用matplotlib内指定的表示颜色的字符串或者colormap对象指定
colorbar 是否显示颜色条,仅仅在绘制有颜色条的图形时使用,如‘scatter’、‘henbin’图
position 仅作用于绘制柱状图时,取值范围[0,1],用于设置X坐标显示的位置,0表示显示在最左边的柱条处,1表示显示在最右边的柱条处。
sort_columns 是否允许对columns的名称进行排序、决定绘图顺序
scondary_y 是否在第二个(一般默认指右边的Y轴)Y轴上绘图,默认为False。该参数还可以传入一个list或tuple,表示指定哪些columns在第二个Y轴上绘图。
mark_right 当使用第二个Y绘图时,是否允许在图例的右边加上“right”字样,表明是在第二个轴上绘图,默认是True
**kwds 该参数表明除去以上参数外,你可以传入matplotlib其它的绘图方法

seaborn

基于matplotlib上的一层封装

pandas + pyecharts + eplot + numpy

1
2
3
from eplot import eplot

df['principal_payable'].eplot.hist(bins=10)

https://pyecharts.org/#/zh-cn/intro

https://pyecharts.herokuapp.com/

plotly

  • Cufflinks是一个第三方的实现,对plotly的封装
  • plotly express是官方的,等同于Cufflinks
  • Dash——Flask, Plotly.js, and React.js
1
2
fig = px.histogram(s, x="principal_payable", marginal="rug", hover_data=s.columns,nbins=20)
fig.show()

https://plot.ly/python/distplot/

地图数据可视化

plotly

百度地图

高德地图