Matplotlib 如何使用相同的存储单元大小将两个数据集绘制成图?

Matplotlib 如何使用相同的存储单元大小将两个数据集绘制成图?,matplotlib,Matplotlib,我有两个不同的数据集。我想用两个不同的数据集绘制柱状图,但要保持箱子相同,每个箱子的宽度和范围应该相同 Data1 = np.array([1,2,3,3,5,6,7,8]) Data2 = np.array[1,2,3,4,6,7,8,8] n,bins,patches = plt.hist(Data1,bins=20) plt.ylabel("no of states") plt.xlabel("bins") plt.savefig("./DOS")` 您可以查看的文档,您将看到bins

我有两个不同的数据集。我想用两个不同的数据集绘制柱状图,但要保持箱子相同,每个箱子的宽度和范围应该相同

Data1 = np.array([1,2,3,3,5,6,7,8])
Data2 = np.array[1,2,3,4,6,7,8,8]
n,bins,patches = plt.hist(Data1,bins=20)
plt.ylabel("no of states")
plt.xlabel("bins")

plt.savefig("./DOS")`

您可以查看的文档,您将看到bins参数可以是定义bins数量的整数,也可以是定义bins自身边缘的序列

要手动定义这些存储箱,您需要:


您可以查看的文档,您将看到bins参数可以是定义bins数量的整数,也可以是定义bins自身边缘的序列

因此,您需要手动定义要使用的箱子,并将其传递给plt.hist:

您可以将从第一个柱状图返回的箱子作为参数传递给第二个柱状图,以确保两者具有相同的箱子大小

完整答案:

您可以将从第一个柱状图返回的箱子作为参数传递给第二个柱状图,以确保两者具有相同的箱子大小

完整答案:


下面的任何答案都能解决您的问题吗?如果他们这样做了,那么就把你认为最好的答案标记为被接受。由于您似乎是堆栈溢出新手,您应该阅读下面的任何答案是否解决了您的问题?如果他们这样做了,那么就把你认为最好的答案标记为被接受。由于您似乎不熟悉堆栈溢出,因此应该阅读
import matplotlib.pyplot as plt
import numpy as np

bin_edges = [0, 2, 4, 6, 8]
data = np.random.rand(50) * 8 

plt.hist(data, bins=bin_edges)
import numpy as np
import matplotlib.pyplot as plt

Data1 = np.array([1, 2, 3, 3, 5, 6, 7, 8])
Data2 = np.array([1, 2, 3, 4, 6, 7, 8, 8])
n, bins, patches = plt.hist(Data1, bins=20, label='Data 1')
plt.hist(Data2, bins=bins, label='Data 2')
plt.ylabel("no of states")
plt.xlabel("bins")
plt.legend()
plt.show()