Matplotlib 2D直方图
Matplotlib是Python的一个绘图库,可以用于绘制各种静态、动态、交互式的图表。在数据分析、机器学习、人工智能等领域,Matplotlib都有着广泛的应用。本文将详细介绍如何使用Matplotlib绘制2D直方图。
一、2D直方图的基本概念
2D直方图是一种特殊的直方图,它不仅可以显示一个维度的数据分布情况,还可以显示两个维度的数据分布情况。在2D直方图中,数据被分割成多个箱子,每个箱子代表一个区间,箱子的高度代表该区间内数据的数量。
例如,我们有一组关于how2matplotlib.com网站访问量的数据,其中包括每天的访问量和每天的访问时间。我们可以使用2D直方图来显示这两个维度的数据分布情况。
二、Matplotlib绘制2D直方图的基本步骤
在Matplotlib中,我们可以使用hist2d
函数来绘制2D直方图。下面是一个基本的步骤:
- 导入Matplotlib库:
import matplotlib.pyplot as plt
- 创建数据:
x = [1, 2, 3, 4, 5]
,y = [1, 2, 3, 4, 5]
- 调用
hist2d
函数绘制2D直方图:plt.hist2d(x, y)
- 显示图表:
plt.show()
下面我们将通过具体的示例代码来详细介绍如何使用Matplotlib绘制2D直方图。
三、示例代码
示例1:基本的2D直方图
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 绘制2D直方图
plt.hist2d(x, y, bins=30, cmap='Blues')
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例2:改变直方图的颜色
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 绘制2D直方图
plt.hist2d(x, y, bins=30, cmap='Reds')
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例3:改变直方图的箱子数量
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 绘制2D直方图
plt.hist2d(x, y, bins=50, cmap='Blues')
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例4:添加网格线
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 绘制2D直方图
plt.hist2d(x, y, bins=30, cmap='Blues')
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 添加网格线
plt.grid(True)
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例5:改变图表的大小
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 设置图表的大小
plt.figure(figsize=(10, 8))
# 绘制2D直方图
plt.hist2d(x, y, bins=30, cmap='Blues')
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例6:改变坐标轴的范围
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 绘制2D直方图
plt.hist2d(x, y, bins=30, cmap='Blues')
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 改变坐标轴的范围
plt.xlim(-3, 3)
plt.ylim(-3, 3)
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例7:改变坐标轴的刻度
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 绘制2D直方图
plt.hist2d(x, y, bins=30, cmap='Blues')
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 改变坐标轴的刻度
plt.xticks(np.arange(-3, 4, 1))
plt.yticks(np.arange(-3, 4, 1))
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例8:改变颜色条的刻度
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 绘制2D直方图
plt.hist2d(x, y, bins=30, cmap='Blues')
cb = plt.colorbar(ticks=[0, 50, 100, 150, 200])
cb.set_label('Counts in Bin')
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例9:改变颜色条的标签
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 绘制2D直方图
plt.hist2d(x, y, bins=30, cmap='Blues')
cb = plt.colorbar()
cb.set_label('Visits in Bin')
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例10:使用不同的颜色映射
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 绘制2D直方图
plt.hist2d(x, y, bins=30, cmap='viridis')
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例11:使用对数刻度
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 绘制2D直方图
plt.hist2d(x, y, bins=30, cmap='Blues', norm=matplotlib.colors.LogNorm())
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例12:使用hexbin函数绘制2D直方图
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 使用hexbin函数绘制2D直方图
plt.hexbin(x, y, gridsize=30, cmap='Blues')
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例13:使用不同的形状绘制2D直方图
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 使用hexbin函数绘制2D直方图
plt.hexbin(x, y, gridsize=30, cmap='Blues', mincnt=1)
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例14:使用不同的边缘颜色绘制2D直方图
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 使用hexbin函数绘制2D直方图
plt.hexbin(x, y, gridsize=30, cmap='Blues', edgecolors='red')
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
示例15:使用不同的填充颜色绘制2D直方图
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 使用hexbin函数绘制2D直方图
plt.hexbin(x, y, gridsize=30, cmap='Blues', facecolors='red')
cb = plt.colorbar()
cb.set_label('Counts in Bin')
# 设置标题和坐标轴标签
plt.title('2D Histogram of how2matplotlib.com')
plt.xlabel('X')
plt.ylabel('Y')
# 显示图表
plt.show()
以上就是使用Matplotlib绘制2D直方图的详细介绍,希望对你有所帮助。