使用Python生成直方图

1. 引言

你想知道如何在Python中生成直方图吗?在本教程中,我将向大家展示如何做到这一点。

数值数据的分布可以用直方图表示。直方图是数据的一种可视化表示,它使用不同高度的条形图,其中每个条形图标识一段范围的数据。在Python中,我们可以使用两个模块绘制直方图:Matplotlib和Pandas。

闲话少说,我们直接开始吧!

2. 生成数据

首先,让我们使用Numpy来创建一些虚拟数据,其中NumPy是一个可以处理多维数组的Python库。接着,我们使用以下代码从正态高斯分布生成随机样例数据,如下:

import numpy as np
 
# Create dummy data points
data = np.random.normal(170, 10, 250)
print(data)

上述代码输出如下:

[178.6389057  160.71481129 176.06380975 170.26836416 168.64962801
 167.77093268 189.89642816 167.57947841 187.95156914 185.14287433
 173.77094473 181.96577219 171.40557555 168.42044648 181.90741839
 182.15559495 151.58511408 165.68497833 163.91143081 170.86070342
 165.91667438 177.44452444 161.35877875 170.74342034 161.41709815
 187.54503422 160.61351112 177.18043424 180.366389   177.56347178
 165.48898864 189.19288388 186.5750155  154.66924922 … 170.94541687]

接下来,我们将使用这些数据来进行直方图的绘制。

3. 使用Matplotlib绘制直方图

如果我们已经装好了numpy和Matplotlib库,接下来我们使用以下代码来绘制最基础的直方图,代码如下:

import matplotlib.pyplot as plt
import numpy as np
 
data = np.random.normal(170, 10, 250)
plt.hist(data)
plt.show()

样例输出如下:

在这里插入图片描述
嗯捏,我们已经成功绘制了第一个直方图。

事实上,Matplotlib提供了大量参数来定制图形,我们将使用它们使上面的直方图更具可视化效果。代码如下:

import matplotlib.pyplot as plt
import numpy as np
 
data = np.random.normal(170, 10, 250)
plt.hist(data, bins= 20, color='green')
plt.show()

输出如下:
在这里插入图片描述

4. 使用Pandas绘制直方图

其实,Python中的第三方库Pandas为大家提供了高效地操作大型数据集所需的工具。在Pandas的帮助下,我们可以轻松高效地执行数据分析任务。
所以,我们也可以使用Pandas中的hist进行直方图绘制,样例代码如下:

# import libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
 
# generate random data using NumPy
random_data = np.random.normal(170, 10, 250)
 
# convert the data into a Pandas DataFrame
dataframe = pd.DataFrame(random_data)
 
# plot histogram using Pandas hist() function
dataframe.hist()

输出结果如下:

在这里插入图片描述
哇,是不是可视化效果更加美观啦!

5. 总结

在本文中,我们从直方图的基本知识开始,并介绍了它们的用途。接着,我们使用Numpy生成虚拟数据,并使用Matplotlib和Pandas分别进行直方图的绘制,并给出了相应的代码示例。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年3月5日 下午2:10
下一篇 2023年3月5日 下午2:12

相关推荐

此站出售,如需请站内私信或者邮箱!