如何从列表列表中绘制二维直方图?
How to plot 2d histograms from a list of lists?
我有一个二维直方图,它被记录并保存到列表列表中,如下所示:
lst:
[[1.0, 1.0, 10], [1.0, 2.0, 28.6], [1.0, 3.0, 26.93], [1.0, 4.0, 26.93],[2.0, 1, 6],[2.0, 2.0, 4],[2.0, 3.0, 67],[2.0, 4, 23],[3.0, 1.0, 12], [3.0, 2.0, 65], [3.0, 3.0, 33], [3.0, 4.0, 53]]
第一项和第二项是指 x 和 y,第三项指向该单元格的值。我想将它们绘制成二维热图。有什么想法可以让我绘制它们吗?
你只需要转置你的列表列表就可以绘图了!
import matplotlib.pyplot as plt
import numpy as np
data = [[1.0, 1.0, 10],
[1.0, 2.0, 28.6],
[1.0, 3.0, 26.93],
[1.0, 4.0, 26.93],
[2.0, 1, 6],
[2.0, 2.0, 4],
[2.0, 3.0, 67],
[2.0, 4, 23],
[3.0, 1.0, 12],
[3.0, 2.0, 65],
[3.0, 3.0, 33],
[3.0, 4.0, 53]]
data = np.array(data).T
fig, axs = plt.subplots(2, 2, figsize=(5, 5))
axs[0, 0].hist(data[0])
axs[1, 0].scatter(data[0], data[1])
axs[0, 1].plot(data[0], data[1])
axs[1, 1].hist2d(data[0], data[1])
plt.show()
我有一个二维直方图,它被记录并保存到列表列表中,如下所示:
lst:
[[1.0, 1.0, 10], [1.0, 2.0, 28.6], [1.0, 3.0, 26.93], [1.0, 4.0, 26.93],[2.0, 1, 6],[2.0, 2.0, 4],[2.0, 3.0, 67],[2.0, 4, 23],[3.0, 1.0, 12], [3.0, 2.0, 65], [3.0, 3.0, 33], [3.0, 4.0, 53]]
第一项和第二项是指 x 和 y,第三项指向该单元格的值。我想将它们绘制成二维热图。有什么想法可以让我绘制它们吗?
你只需要转置你的列表列表就可以绘图了!
import matplotlib.pyplot as plt
import numpy as np
data = [[1.0, 1.0, 10],
[1.0, 2.0, 28.6],
[1.0, 3.0, 26.93],
[1.0, 4.0, 26.93],
[2.0, 1, 6],
[2.0, 2.0, 4],
[2.0, 3.0, 67],
[2.0, 4, 23],
[3.0, 1.0, 12],
[3.0, 2.0, 65],
[3.0, 3.0, 33],
[3.0, 4.0, 53]]
data = np.array(data).T
fig, axs = plt.subplots(2, 2, figsize=(5, 5))
axs[0, 0].hist(data[0])
axs[1, 0].scatter(data[0], data[1])
axs[0, 1].plot(data[0], data[1])
axs[1, 1].hist2d(data[0], data[1])
plt.show()