Tôi thường sử dụng ax.set_rasterized(True)
để rasterize hình để nó có thể xử lý minh bạch khi lưu ở định dạng eps
, nhưng rasterization cũng làm mờ nhãn trục và ticklabels, do đó, có cách để rasterize chỉ các bản vá lỗi trong trục chứ không phải là toàn bộ nhân vật? hoặc là có một tốt hơn xung quanh cho xuất khẩu định dạng eps với minh bạch? Cảm ơn.Làm thế nào để rasterize tốt hơn một cốt truyện mà không làm mờ các nhãn trong matplotlib?
Trả lời
Vì matplotlib Artists có thể được rasterized, bất kỳ lớp nào bắt nguồn từ Artist (http://matplotlib.sourceforge.net/api/artist_api.html) có thể được rasterized với từ khóa rasterized
đặt thành True
. Vì vậy, bạn chỉ có thể rasterize các bản vá lỗi của bạn.
Tôi vừa thử một số kết hợp và có vẻ như nó hoạt động. Tuy nhiên chất lượng dường như không tốt lắm (xem thêm http://www.mail-archive.com/[email protected]/msg13276.html).
import numpy as np
import matplotlib.pyplot as plt
def add_patch(ax, **kwargs):
if 'rasterized' in kwargs and kwargs['rasterized']:
ax.set_rasterization_zorder(0)
ax.fill_between(np.arange(1, 10), 1, 2, zorder=-1, **kwargs)
ax.set_xlim(0, 10)
ax.set_ylim(0, 3)
if 'alpha' in kwargs and kwargs['alpha'] < 1:
txt = 'This patch is transparent!'
else:
txt = 'This patch is not transparent!'
ax.text(5, 1.5, txt, ha='center', va='center', fontsize=25, zorder=-2,
rasterized=True)
fig, axes = plt.subplots(nrows=4, sharex=True)
add_patch(axes[0], alpha=0.2, rasterized=False)
add_patch(axes[1], alpha=0.2, rasterized=True)
add_patch(axes[2], rasterized=False)
add_patch(axes[3], rasterized=True)
plt.tight_layout()
plt.savefig('rasterized_transparency.eps')
tôi chuyển đổi eps
để png để hiển thị nó trong trình duyệt:
Xem thêm: How to save figures to pdf as raster images in matplotlib.
Cảm ơn, tôi sẽ thử ví dụ của bạn và thử nghiệm mã ASAP của riêng tôi. Câu trả lời sẽ được chấp nhận bởi sau đó ;-). – nye17
Kết quả tốt hơn nếu bạn chỉ định dpi - dường như mặc định là giá trị khá thấp. Ví dụ: thay đổi dòng cuối cùng thành
plt.savefig('rasterized_transparency.eps',dpi=200)
và tệp tăng lên 4.5M và có vẻ tốt trong Acrobat lên tới 200% độ phóng đại. Tuy nhiên, tôi đồng ý rằng có thể có nhiều định dạng nhỏ gọn hơn hỗ trợ tính minh bạch.
- 1. Làm thế nào để tạo ra một cốt truyện mật độ trong matplotlib?
- 2. Matplotlib cốt truyện là một no-show
- 3. Làm thế nào để hiển thị nhãn dải bên dưới cốt truyện khi faceting?
- 4. Tự động cập nhật cốt truyện trong matplotlib
- 5. Làm cách nào để thiết lập cốt truyện() gắn nhãn trục x với?
- 6. Matplotlib savefig với một huyền thoại bên ngoài cốt truyện
- 7. Loại bỏ mép trắng trong cốt truyện pcolor/basemap Matplotlib
- 8. Remove 'y' nhãn từ cốt truyện trong R
- 9. R cốt truyện với trục x thời gian: làm thế nào để buộc các nhãn ve là ngày?
- 10. Làm thế nào để làm cho cốt truyện không biến mất?
- 11. Làm thế nào để vẽ một cốt truyện chức năng trong WPF?
- 12. Matplotlib: lưu cốt truyện thành mảng có nhiều mảng
- 13. matplotlib dòng dòng 2d, = cốt truyện dấu phẩy nghĩa
- 14. biểu đồ cốt truyện của datetime.time python/matplotlib
- 15. cốt truyện không được xác định
- 16. Matplotlib: cốt truyện tương tác trên máy chủ web
- 17. Làm thế nào để thêm huyền thoại trong cốt truyện imagesc trong matlab
- 18. Làm thế nào để các chức năng MATLAB cốt truyện và dòng khác nhau?
- 19. Làm thế nào cốt truyện Riemann zeta không phổ với biến đổi Fourier trong Mathematica?
- 20. pad_inches = 0 và bbox_inches = "tight" làm cho cốt truyện nhỏ hơn khai báo figsize
- 21. Vẽ nhiều hơn một đường cong hàm trong cùng một cốt truyện
- 22. tính toán Làm trong lệnh cốt truyện gnuplot của
- 23. điểm chú thích từ một Pandas Dataframe trong Matplotlib cốt truyện
- 24. cốt truyện 3D hấp dẫn trong R
- 25. Làm thế nào để sửa đổi cốt truyện Matrix Correlation này?
- 26. Thay thế cốt truyện (x, y) thành matplotlib bằng Python là gì?
- 27. kiểm soát ggplot2 huyền thoại nhìn mà không ảnh hưởng cốt truyện
- 28. Làm thế nào để cập nhật một âm mưu trong matplotlib?
- 29. Formatting của cốt truyện persp3d
- 30. ggplot2 cốt truyện không có trục, truyền thuyết, vv
Tôi vừa phát hiện ra set_zorder và set_rasterization_zorder, tôi nghĩ chúng sẽ hữu ích, nhưng vẫn đào các tài liệu, vẫn còn bất kỳ trợ giúp nào được đánh giá cao. – nye17
Bạn không thể sử dụng 'pdf'? Nó sẽ bảo toàn độ trong suốt mà không bị rasterisation. – Avaris
@Avaris tiếc là tôi không thể sử dụng pdf, nhưng phải dính với eps, do đó, rasterization dường như là cách duy nhất ra ngoài. – nye17