直方图用于展示数据的分布情况,x轴是一个连续变量,y轴是该变量在一定区间内的频次。

下面利用Nathan Yau所著的《鲜活的数据:数据可视化指南》一书中的数据,学习画图。

数据地址:http://datasets.flowingdata.com/crimeRatesByState2005.csv

以下是这个数据文件的前5行:

           state  murder  forcible_rape  robbery  aggravated_assault  \
0 United States 5.6 31.7 140.7 291.1
1 Alabama 8.2 34.3 141.4 247.8
2 Alaska 4.8 81.1 80.9 465.1
3 Arizona 7.5 33.8 144.4 327.4
4 Arkansas 6.7 42.9 91.1 386.8 burglary larceny_theft motor_vehicle_theft population
0 726.7 2286.3 416.7 295753151
1 953.8 2650.0 288.3 4545049
2 622.5 2599.1 391.0 669488
3 948.4 2965.2 924.4 5974834
4 1084.6 2711.2 262.1 2776221

这是美国各州各种犯罪行为的发生率(每10万人口)。

我们把robbery和aggravated_assault的犯罪率分别分成12个区间,每个区间的犯罪率各为60次。让我们看看各区间出现的次数。(也就是0-60这一犯罪率区间出现几次,61-120出现几次等等)

直方图: ax.hist(x,bins=num_of_bins)   ---   x为变量,bins为柱子数量

代码如下:

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
crime=pd.read_csv(r"http://datasets.flowingdata.com/crimeRatesByState2005.csv")
fig,ax=plt.subplots() ax.hist(crime["robbery"],bins=12,histtype="stepfilled",alpha=0.6,label="robbery")
ax.hist(crime["aggravated_assault"],bins=12,histtype="stepfilled",alpha=0.6,label="aggravated_assault")
ax.legend()
ax.set_xticks(np.arange(0,721,60))
ax.set_xlim(0,720)
ax.set_yticks(np.arange(0,21,4))
plt.show()

图像如下:

可以看出,robbery在60-120犯罪率这一区间出现次数最多,而aggravated_assault在120-180犯罪率这一区间出现次数最多。

此外,直方图也可以被归一化以显示“相对”频率,在命令里加上参数normed=True即可。这样,y轴就变成了相对频率(频率=频次/样本总数;相对频率=频率/组距)。

显示相对频率的图像如下:

下面我们自己创建一组符合正态分布的数据,再用matplotlib画画看。

import numpy as np
from matplotlib import pyplot as plt
fig,ax=plt.subplots() np.random.seed(4) #设置随机数种子
Gaussian=np.random.normal(0,1,1000) #创建一组平均数为0,标准差为1,总个数为1000的符合标准正态分布的数据
ax.hist(Gaussian,bins=25,histtype="stepfilled",normed=True,alpha=0.6) plt.show()

图像如下:

此时,图像反映的是其概率密度,直方图的面积总和为1。

除了频次直方图,我们还可以用KDE(kernel density estimation)获取变量分布的平滑估计。具体请见下一篇:Matplotlib学习---用seaborn画直方图/核密度图(histogram, kdeplot)

Matplotlib学习---用matplotlib画直方图/密度图(histogram, density plot)的更多相关文章

  1. Matplotlib学习---用seaborn画直方图,核密度图(histogram, kdeplot)

    由于直方图受组距(bin size)影响很大,设置不同的组距可能会产生完全不同的可视化结果.因此我们可以用密度平滑估计来更好地反映数据的真实特征.具体可参见这篇文章:https://blog.csdn ...

  2. Matplotlib学习---用matplotlib画箱线图(boxplot)

    箱线图通过数据的四分位数来展示数据的分布情况.例如:数据的中心位置,数据间的离散程度,是否有异常值等. 把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)分 ...

  3. Python图表数据可视化Seaborn:1. 风格| 分布数据可视化-直方图| 密度图| 散点图

    conda  install seaborn  是安装到jupyter那个环境的 1. 整体风格设置 对图表整体颜色.比例等进行风格设置,包括颜色色板等调用系统风格进行数据可视化 set() / se ...

  4. seaborn分布数据可视化:直方图|密度图|散点图

    系统自带的数据表格(存放在github上https://github.com/mwaskom/seaborn-data),使用时通过sns.load_dataset('表名称')即可,结果为一个Dat ...

  5. Matplotlib学习---用matplotlib画阶梯图(step plot)

    这里利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://datasets.flowingdata.com/us-postage.c ...

  6. Matplotlib学习---用matplotlib画面积图(area chart)

    这里利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://book.flowingdata.com/ch05/data/us-pop ...

  7. Matplotlib学习---用matplotlib画热图(heatmap)

    这里利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://datasets.flowingdata.com/ppg2008.csv ...

  8. Matplotlib学习---用matplotlib画折线图(line chart)

    这里利用Jake Vanderplas所著的<Python数据科学手册>一书中的数据,学习画图. 数据地址:https://raw.githubusercontent.com/jakevd ...

  9. Matplotlib学习---用seaborn画矩阵图(pair plot)

    矩阵图非常有用,人们经常用它来查看多个变量之间的联系. 下面用著名的鸢尾花数据来画一个矩阵图.从sklearn导入鸢尾花数据,然后将其转换成pandas的DataFrame类型,最后用seaborn画 ...

随机推荐

  1. node express使用

    var express = require('express'); var app = express(); app 对象具有以下的方法: 路由HTTP请求:app.METHOD和app.param. ...

  2. ubuntu 添加开机启动服务

    新建umpserver.service [Unit] Description=UMPServer After=syslog.target network.target remote-fs.target ...

  3. elasticsearch(6.2.3)安装Head插件

    一.安装elasticsearch,参照:https://www.cnblogs.com/dyh004/p/8872443.html 二.安装nodejs,参照:https://www.runoob. ...

  4. 爬虫(三)之scrapy核心组件

    01-核心组件 ·五大核心组件的工作流程: 引擎(Scrapy) 用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler) 用来接受引擎发过来的请求, 压入队列中, 并在引擎 ...

  5. c++入门之引用

    引用通常被用在函数形参传递的过程中.一般的参数传递的过程:将实参进行拷贝,函数中都是对拷贝的变量进行操作,而不是对原变量进行操作.但很多情况下,我们都希望对原变量进行操作.(比如交换两个变量的数值). ...

  6. 15-分析Ajax请求并抓取今日头条街拍美图

    流程框架: 抓取索引页内容:利用requests请求目标站点,得到索引网页HTML代码,返回结果. 抓取详情页内容:解析返回结果,得到详情页的链接,并进一步抓取详情页的信息. 下载图片与保存数据库:将 ...

  7. Nice Garland CodeForces - 1108C (思维+暴力)

    You have a garland consisting of nn lamps. Each lamp is colored red, green or blue. The color of the ...

  8. PS打造油画般的风景人像

  9. PS滤镜制作下雨照片特效

    原图 一.打开你想要添加下雨效果的照片,并新建一个图层,命名为雨,填充为黑色,对“雨”层执行:滤镜 > 杂色> 添加杂色,参数如图. 二.对“雨”层执行:滤镜 > 模糊 > 高 ...

  10. 20分钟 看图手写的table

    <html><body><table width="100%" border="1" cellspacing="0&qu ...