Matplotlib 直方图

Matplotlib 直方图

在数据可视化中,直方图是一种基于区间分组的图形表达方式。它显示了一组连续的数据的频率分布。Matplotlib是Python中最常用的绘图库之一,可以用来生成各种各样的图形,包括直方图。本文将介绍如何使用Matplotlib绘制直方图,并将时间放在x轴上。

阅读更多:Matplotlib 教程

Matplotlib绘制简单的直方图

要绘制直方图,我们需要先创建数据,然后使用Matplotlib的hist()函数生成图表。

下面是一个简单的示例:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
data = np.random.randn(1000)

# 绘制直方图
plt.hist(data)
plt.show()

在这个例子中,我们生成了一个包含1000个随机数的数组,并使用plt.hist()函数生成直方图。plt.show()函数用于显示图表。

运行以上代码,我们将得到一个包含1000个随机数的直方图。

定义直方图的bin数量

“bin”是将数据分成的区间。在上面的示例中,Matplotlib自动选择了默认的bin数量(10个)。有时候,我们需要根据自己的需求定义bin的数量。

可以使用plt.hist()函数的“bins”参数来定义bin的数量。

下面的代码使用20个bin绘制了一个包含1000个随机数的直方图:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
data = np.random.randn(1000)

# 绘制直方图
plt.hist(data, bins=20)
plt.show()

将时间放在x轴上

在时间序列数据中,我们通常需要将时间放在x轴上。一种简单的方法是将时间值转换为日期时间对象,然后使用Matplotlib的plot_date()函数或scatter()函数绘制。另一种方法是使用NumPy datetime64数据类型。这种方式更加直接,也更容易处理。

下面是一个使用datetime64数据类型绘制时间序列数据的例子:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# 生成一些随机日期
dates = pd.date_range('2020-01-01', '2020-12-31')

# 创建一些随机数据
data = np.random.randn(len(dates))

# 绘制直方图
plt.hist(dates, bins=12)
plt.show()

上面的代码中,我们使用Pandas日期范围函数生成了2020年的所有日期,然后生成了与日期数量相等的随机数据。使用plt.hist()函数绘制了直方图,并使用了bins参数将数据分成了12组(每月一个组)。

如果需要将时间设为x轴的刻度标签,我们可以使用Matplotlib的set_xticklabels()函数。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# 生成一些随机日期
dates = pd.date_range('2020-01-01', '2020-12-31')

# 创建一些随机数据
data = np.random.randn(len(dates))

# 绘制直方图
plt.hist(dates, bins=12)
plt.xticks(rotation=45)
plt.gca().set_xticklabels([date.strftime('%Y-%m') for date in dates])
plt.show()

在上面的代码中,我们使用了plt.xticks()函数和set_xticklabels()函数,将刻度标签旋转了45度,并将日期字符串格式化为“YYYY-MM”的形式。此时,我们就可以将时间放在x轴上了。

总结

本文介绍了如何使用Matplotlib绘制直方图,包括简单的直方图绘制、定义bin的数量、以及将时间放在x轴上。希望读者可以通过本文了解如何使用Matplotlib绘制直方图,并根据自己的需要定义图形样式和参数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程