[英]How to add error bars to histograms with weights using matplotlib?
[英]How to add multiple histograms in a figure using Matplotlib?
我在一個 plot 中成功使用了 matplotlib 到 plot 許多直方圖:
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(1)
for i in range(0, 6):
data = np.random.normal(size=1000)
plt.hist(data, bins=30, alpha = 0.5)
plt.show()
但是,我希望使用 PdfPages 在 pdf 中導出此 plot。 我想在單獨的頁面中添加每個直方圖,我成功地這樣做了:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
np.random.seed(1)
fig = []
with PdfPages("exported_data.pdf") as pdf:
for i in range(0, 6):
data = np.random.normal(size=1000)
fig.append(plt.hist(data, bins=30, alpha = 0.5))
pdf.savefig(fig[i])
plt.close()
但我想要另一個第 7 頁,其中所有圖都在一個圖中,如上所示。 如何在同一個圖中添加許多直方圖(這樣我就可以在 pdf 頁面中添加)? 我看到很多關於如何 plot 一個圖中的直方圖網格的教程,但我還沒有找到一個將 plot 中的所有直方圖添加到圖中的教程。
謝謝,斯塔姆
在將循環分別運行到 plot (您的第二個代碼片段)之后,您可以將循環運行到 plot 所有直方圖(您的第一個代碼片段)。 這是一個示例,其中隨機 arrays 在第一個循環期間保存在datasets
列表中,以便能夠在第二個循環中將它們一起 plot 。 此解決方案通過使用plt.gcf()
返回當前圖形來工作。
import numpy as np # v 1.19.2
import matplotlib.pyplot as plt # v 3.3.4
from matplotlib.backends.backend_pdf import PdfPages
np.random.seed(1)
datasets = []
with PdfPages("exported_data.pdf") as pdf:
# Plot each histogram, adding each figure to the pdf
for i in range(6):
datasets.append(np.random.normal(size=1000))
plt.hist(datasets[i], bins=30, alpha = 0.5)
pdf.savefig(plt.gcf())
plt.close()
# Plot histograms together using a loop then add the completed figure to the pdf
for data in datasets:
plt.hist(data, bins=30, alpha = 0.5)
pdf.savefig(plt.gcf())
plt.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.