您现在的位置是:网站首页> 编程资料编程资料
Python matplotlib.pyplot.hist()绘制直方图的方法实例_python_
2023-05-26
369人已围观
简介 Python matplotlib.pyplot.hist()绘制直方图的方法实例_python_
一、matplotlib.pyplot.hist()语法
hist(x, bins=None, range=None, density=False,weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, *, data=None, **kwargs)
plt.hist( x,# 指定要绘制直方图的数据 bins,# 设置长条形的数目 range,# 指定直方图数据的上下界,默认包含绘图数据的最大值和最小值(范围) density=True or False, # 如果"True",将y轴转化为密度刻度 默认为None weights,# 该参数可为每一个数据点设置权重 cumulative=True or False,# 是否需要计算累计频数或频率 默认值False bottom=0, # 可以为直方图的每个条形添加基准线,默认为0 histtype={'bar', 'barstacked', 'step', 'stepfilled'} # 设置样式 # bar柱状形数据并排,默认值。 # barstacked在柱状形数据重叠并排(相同的在一起) # step柱状形颜色不填充 # stepfilled填充的线性 align='mid' or 'left' or 'right', # 设置条形边界值的对其方式,默认为mid,除此还有'left'和'right' orientation={'vertical', 'horizontal'},# 设置直方图的摆放方向,默认为垂直方向vertical rwidth,# 设置直方图条形宽度的百分比 log=True or False,# 是否需要对绘图数据进行log变换 默认值False color='r',# 设置直方图的填充色 label, # 设置直方图的标签 stacked=True or False, # 当有多个数据时,是否需要将直方图呈堆叠摆放,默认False水平摆放; facecolor,# 设置长条形颜色(和color效果一致,设置color就不用再设置facecolor) edgecolor,# 设置边框的颜色 alpha # 设置透明度 ) # 注意组距,得到满意的展示效果 # 注意y轴所代表的变量是频数还是频率二、绘制直方图
①绘制简单直方图
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) # bins设置长条形的数目 plt.hist(data,bins=10) plt.show()

②:各个参数绘制的直方图
(1)histtype参数(设置样式bar、barstacked、step、stepfilled)
1. bar:柱状形数据并排(因为bar是默认值,可以不写)
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10) plt.show()

2. barstacked:在柱状形数据重叠并排(相同的在一起)
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,histtype='barstacked') plt.show()

3. step:柱状形颜色不填充
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,histtype='step') plt.show()

4. stepfilled:生成一个默认填充的线图
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,histtype='stepfilled') plt.show()

(2)range参数(指定直方图数据的上下界,默认包含绘图数据的最大值和最小值(范围))
不想显示数据全部范围,只想查看数据某一个范围内的数据。(例:下图数据范围为140~180之间,只想查看150~170之间的数据)
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,histtype='bar',range=(150,170)) plt.show()

(3)orientation参数 (设置直方图的摆放位置,vertical垂直方向 horizontal水平方向,默认值:vertical垂直方向)
垂直方向(默认垂直,可以不写):
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10) plt.show()

horizontal水平方向:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,orientation='horizontal') plt.show()

(4)density参数(bool值,True:将坐标轴转化为密度刻度,默认值:None)
直方图为垂直方向时,观察y轴:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,density=True) plt.show()

直方图为水平方向时,观察x轴:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,orientation='horizontal',density=True) plt.show()

(5)weights参数(为每个数据点设置权重)
直方图为垂直方向时,观察y轴:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,weights=data) plt.show()

直方图为水平方向时,观察x轴:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,orientation='horizontal',weights=data) plt.show()

(6)cumulative参数(bool值,是否需要计算累计频数或频率,默认值:False)
频数:指事件发生的次数
频率:指次数占总次数n的比例
频率=频数/n
直方图为垂直方向时:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,cumulative=True) plt.show()

直方图为水平方向时:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,orientation='horizontal',cumulative=True) plt.show()

(7)bottom参数(为直方图添加基准线)
直方图为垂直方向时,观察y轴:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,bottom=170) plt.show()

直方图为水平方向时,观察x轴:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,orientation='horizontal',bottom=170) plt.show()

(8)align参数(设置条形边界值的对其方式,mid、left、right,默认值:mid)
mid(默认值可以不写):
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10) plt.show()

left:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,align='left') plt.show()

right:
import matplotlib.pyplot as plt imp
相关内容
- 如何解决pycharm中用matplotlib画图不显示中文的问题_python_
- python作图基础之plt.contour实例详解_python_
- Pytest+Request+Allure+Jenkins实现接口自动化_python_
- Python3.9用pip安装wordcloud库失败的解决过程_python_
- pytest多线程与多设备并发appium_python_
- PyCharm安装库numpy失败问题的详细解决方法_python_
- Python中可以用三种方法判断文件是否存在_python_
- Pytest框架之fixture详解(三)_python_
- Pytest框架之fixture详解(二)_python_
- Pytest框架之fixture详解(一)_python_
点击排行
本栏推荐
