Tôi không thể tìm thấy bất kỳ ai khác có vấn đề này. Trong matplotlib, bạn có thể xem các ô của bạn bằng cách sử dụng show() hoặc savefig(). Những hình ảnh này tạo ra một chút khác nhau; trong trường hợp của tôi, hình ảnh savefig() là xấu hơn và khó hiểu hơn. Tôi cần phải làm cho cuộc sống dễ dàng cho người kiểm tra của tôi, vì vậy ..matplotlib, savefig: thiết lập DPI bị bỏ qua
Tôi đã tìm thấy một số chủ đề gợi ý tôi đặt kích thước DPI cho phù hợp với show(). Tôi đã thử:
-> Setting savefig.dpi trực tiếp với matplotlib.rcParams [ 'savefig.dpi'] = 80.
-> Setting savefig.dpi trực tiếp trong ~/.matplotlib/matplotlibrc.
-> Di chuyển tệp rc của tôi sang CWD.
-> Cuối cùng, sử dụng savefig ('image.pdf', dpi = 80)
tôi có thể xác minh rằng các thuộc tính thực sự là việc thiết; nhưng có vẻ như thiết lập được lưu trữ bởi savefig(). Bất cứ ai có thể giúp đỡ với điều này?
(Simplified) mã:
plt.bar(ind, functimes, yerr=stddev, bottom=0, width=barWidth, align='center', color='b')
ax = plt.gca()
ax.legend(barRcts, barLegend)
plt.title("Function Call Overhead")
plt.xlabel("Function ID")
plt.ylabel("Execution Time [us]")
plt.xticks(ind, funcNames)
figtest.autofmt_xdate()
plt.savefig(out_file, dpi=80, format='pdf')
'matplotlib' lưu các tệp' pdf' ở định dạng vectơ. Trừ khi bạn có hình ảnh bitmap trong đó, DPI là khá vô nghĩa trong một hình ảnh vector vì chúng là độ phân giải độc lập. – Avaris
Aha, tôi hiểu rồi. Vì vậy, không có cách nào để lưu hình ảnh pdf với savefig() để chúng giống hệt với những hình ảnh bạn có thể lưu (thủ công) với show()? – memstick
Chúng phải giống hệt nhau. Sự khác biệt duy nhất có thể là nếu bạn thay đổi kích thước hình trước khi lưu nó. Nhưng bạn cũng có thể thiết lập kích thước của con số của bạn ('con số ((chiều rộng, chiều cao))') và 'savefig' sẽ sử dụng nó. – Avaris