-1

我需要准确设置图表的维度。我试过这个,但结果不是我所期望的(如果我设置了 px 和 cm)。成瘾,我想知道如何正确导出图像。谢谢你的帮助!

import numpy as np

plt.rcParams['figure.dpi']=100
  
# create data
x = ['A', 'B', 'C', 'D']
y1 = np.array([10, 20, 10, 30])
y2 = np.array([20, 25, 15, 25])
y3 = np.array([12, 15, 19, 6])
y4 = np.array([10, 29, 13, 19])
  
# plot bars in stack manner
cm = 1/2.54  # centimeters in inches
px = 1/plt.rcParams['figure.dpi']  # pixel in inches

plt.figure(figsize=(800*px,1000*px))

plt.bar(x, y1, color='r')
plt.bar(x, y2, bottom=y1, color='b')
plt.bar(x, y3, bottom=y1+y2, color='y')
plt.bar(x, y4, bottom=y1+y2+y3, color='g')
plt.xlabel("Teams")
plt.ylabel("Score")
plt.legend(["Round 1", "Round 2", "Round 3", "Round 4"])
plt.title("Scores by Teams in 4 Rounds")
plt.show()

预期尺寸:800 像素 x 1000 像素,dpi= 100 我在此处附上导出图像的 Photoshop 屏幕截图 尺寸不正确!

4

1 回答 1

0

Figure 构造函数接受默认为 80 dpi 的元组(以英寸为单位的数字)。你需要传递一个 dpi 参数来改变它

from matplotlib.figure import Figure

fig = Figure(figsize=(5, 4), dpi=80)

以上是 80dpi 时 5 英寸 x 4 英寸,即 400 像素 x 320 像素

如果你想要 800 乘 1000 你可以

fig = Figure(figsize=(8, 10), dpi=100)

导出图像很简单

fig.savefig("MatPlotLib_Graph.png", dpi = 100)
于 2021-06-08T08:57:13.987 回答