Как построить два набора данных, используя один и тот же размер корзины? - PullRequest
1 голос
/ 20 мая 2019

У меня есть два разных набора данных. Я хочу построить гистограмму с использованием двух разных наборов данных, но, сохраняя одинаковые ячейки, ширина и диапазон каждой ячейки должны быть одинаковыми.

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")`

Ответы [ 2 ]

2 голосов
/ 20 мая 2019

Вы можете посмотреть документацию для matplotlib.pyplot.hist , и вы увидите, что аргумент 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)
1 голос
/ 20 мая 2019

Вы можете передать bins, возвращенный из вашей первой гистограммы, в качестве аргумента второй гистограмме, чтобы убедиться, что оба имеют одинаковые размеры бинов.


Полный ответ:

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()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...