我通常使用ax.set_rasterized(True)
來柵格化圖形,以便在按eps
格式保存時可以處理透明度,但是柵格化也會模糊軸標籤和標記標籤,所以有沒有辦法僅在軸內柵格化貼圖而不是整個柵格數字?還是有更好的出口帶有透明度的eps格式?謝謝。如何更好地柵格化繪圖而不會模糊matplotlib中的標籤?
6
A
回答
7
如matplotlib Artists可以被光柵化,從藝術家(http://matplotlib.sourceforge.net/api/artist_api.html)派生的任何類可以與關鍵字rasterized
集到True
光柵化。所以你只能柵格化你的補丁。
我只是嘗試了一些組合,它似乎工作。但質量似乎不是很好(另請參閱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')
我轉換eps
爲PNG,顯示在瀏覽器:
參見:How to save figures to pdf as raster images in matplotlib。
+0
謝謝,我會嘗試您的示例,並儘快在我自己的代碼上進行測試。答案將被接受,然後;-)。 – nye17 2012-05-14 00:30:29
2
如果您指定dpi - 這似乎默認爲相當低的值,結果會更好。例如,更改最後一行
plt.savefig('rasterized_transparency.eps',dpi=200)
和文件增長到4.5M,並在Acrobat看起來罰款高達200%的放大倍率。不過,我同意可能有更多的緊湊格式支持透明度。
相關問題
- 1. Matplotlib:帶柵格化圖的多頁PDF
- 2. 如何從柵格繪圖?
- 3. Python的Matplotlib繪圖CSV數據,格式化日期X標籤
- 4. 柵格matplotlib軸的內容(但不是框架,標籤)
- 5. Django本地化:標籤不會更新
- 6. 在matplotlib中柵格化多個元素
- 7. 層不會柵格化中的R
- 8. 如何模糊表格的背景而不模糊行內容?
- 9. 如何更好地格式化我的HTML表標題和標籤
- 10. 帶格柵圖像的旋轉標籤
- 11. Matplotlib:繪製沒有模糊的像素
- 12. matplotlib,如何在不影響軸標籤的情況下更改繪圖大小
- 13. 如何在Matlab中柵格化圖像?
- 14. 如何繪製柵格地圖上的值?
- 15. matplotlib動畫圖不會更新軸上的標籤使用blit
- 16. 如何模糊3D matplotlib中的點
- 17. 用Matplotlib/Python繪製模糊線條
- 18. 獲取柵格地圖中補丁的座標(R中的柵格包)
- 19. 如何在x軸熊貓(matplotlib)中繪製HMS格式化圖
- 20. 如何使用matplotlib將繪圖的xtick標籤變成簡單的繪圖?
- 21. 無法在tkinter GUI中繪製matplotlib圖表而不會崩潰
- 22. 如何在水平圖柵格中標記地點?
- 23. CATextLayer獲取柵格化得太早並且模糊
- 24. 關於CALayer應用柵格化iOS 7 UINavigationBar背景模糊
- 25. 當筆具有DashStyle而非Null時,StreamGeometry不會被柵格化
- 26. R繪圖標籤格式
- 27. Matplotlib subplot標題,圖標題格式化
- 28. 如何在使用柵格時停止在R繪圖軸標籤中的上標
- 29. matplotlib地塊點的標籤
- 30. 如何在標籤中顯示模糊輸出結果而不是整數值?
我剛剛發現了set_zorder和set_rasterization_zorder,我認爲它們會有所幫助,但仍然在挖掘文檔,仍然有任何幫助表示讚賞。 – nye17 2012-04-06 21:31:34
你不能使用pdf嗎?它將保持透明度,而不用柵格化。 – Avaris 2012-04-06 21:49:53
@Avaris不幸的是我不能使用pdf,但必須堅持使用eps,所以光柵化似乎是唯一的出路。 – nye17 2012-04-06 22:02:25