![](/img/trans.png)
[英]Plotting Multiple Histograms in Matplotlib - Colors or side-by-side bars
[英]Plotting multiple graphs side-by-side in one figure
我使用以下通用代碼片段制作了多個直方圖(對每個直方圖進行了輕微修改):
import matplotlib.pyplot as plt
plt.hist(df['count'], color = 'blue', edgecolor = 'black', bins = int(12/1))
plt.title('Histogram')
plt.xlabel('No. of individuals')
plt.ylabel('No. of images')
就目前而言,我必須將此代碼作為 8 個不同的命令運行,以生成 8 個單獨的直方圖。 因此,如何將所有 8 個圖形繪制為一個圖形,並將各個圖形並排設置?
這可能嗎?
謝謝,R
因此,為了解決這個問題,我將向您展示在同一圖上求解 3 個不同直方圖的方法,相同的邏輯可以應用於任意k
個直方圖。
import numpy as np
import matplotlib.pyplot as plt
n = 5000
mean_mu1 = 60
sd_sigma1 = 15
data1 = np.random.normal(mean_mu1, sd_sigma1, n)
mean_mu2 = 80
sd_sigma2 = 15
data2 = np.random.normal(mean_mu2, sd_sigma2, n)
mean_mu3 = 100
sd_sigma3 = 15
data3 = np.random.normal(mean_mu3, sd_sigma3, n)
plt.figure(figsize=(8,6))
plt.hist(data1, bins=100, alpha=0.5, label="data1")
plt.hist(data2, bins=100, alpha=0.5, label="data2")
plt.hist(data3, bins=100, alpha=0.5, label="data3")
plt.xlabel("Data", size=14)
plt.ylabel("Count", size=14)
plt.title("Multiple Histograms with Matplotlib")
plt.legend(loc='upper right')
plt.savefig("overlapping_histograms_with_matplotlib_Python_2.png")
這將生成以下內容:
來源: https : //datavizpyr.com/overlapping-histograms-with-matplotlib-in-python/
當您處理 8 個不同的直方圖時,這種圖將很難閱讀。
根據評論,您希望在 1 個大圖中繪制k
不同的直方圖。
我將用 4 個不同的直方圖展示這樣做的邏輯:
import numpy as np
import matplotlib.pyplot as plt
n = 5000
mean_mu1 = 60
sd_sigma1 = 15
data1 = np.random.normal(mean_mu1, sd_sigma1, n)
mean_mu2 = 80
sd_sigma2 = 15
data2 = np.random.normal(mean_mu2, sd_sigma2, n)
mean_mu3 = 100
sd_sigma3 = 15
data3 = np.random.normal(mean_mu3, sd_sigma3, n)
mean_mu4 = 120
sd_sigma4 = 15
data4 = np.random.normal(mean_mu4, sd_sigma4, n)
data = [data1, data2, data3, data4]
f, a = plt.subplots(2,2)
a = a.ravel()
for idx, ax in enumerate(a):
ax.hist(data[idx])
plt.show()
這將輸出以下內容:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.