mirror of
https://github.com/Estom/notes.git
synced 2026-02-06 12:04:05 +08:00
61 lines
1.6 KiB
Markdown
61 lines
1.6 KiB
Markdown
# 光栅化演示
|
|
|
|

|
|
|
|
```python
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
|
|
d = np.arange(100).reshape(10, 10)
|
|
x, y = np.meshgrid(np.arange(11), np.arange(11))
|
|
|
|
theta = 0.25*np.pi
|
|
xx = x*np.cos(theta) - y*np.sin(theta)
|
|
yy = x*np.sin(theta) + y*np.cos(theta)
|
|
|
|
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2)
|
|
ax1.set_aspect(1)
|
|
ax1.pcolormesh(xx, yy, d)
|
|
ax1.set_title("No Rasterization")
|
|
|
|
ax2.set_aspect(1)
|
|
ax2.set_title("Rasterization")
|
|
|
|
m = ax2.pcolormesh(xx, yy, d)
|
|
m.set_rasterized(True)
|
|
|
|
ax3.set_aspect(1)
|
|
ax3.pcolormesh(xx, yy, d)
|
|
ax3.text(0.5, 0.5, "Text", alpha=0.2,
|
|
va="center", ha="center", size=50, transform=ax3.transAxes)
|
|
|
|
ax3.set_title("No Rasterization")
|
|
|
|
|
|
ax4.set_aspect(1)
|
|
m = ax4.pcolormesh(xx, yy, d)
|
|
m.set_zorder(-20)
|
|
|
|
ax4.text(0.5, 0.5, "Text", alpha=0.2,
|
|
zorder=-15,
|
|
va="center", ha="center", size=50, transform=ax4.transAxes)
|
|
|
|
ax4.set_rasterization_zorder(-10)
|
|
|
|
ax4.set_title("Rasterization z$<-10$")
|
|
|
|
|
|
# ax2.title.set_rasterized(True) # should display a warning
|
|
|
|
plt.savefig("test_rasterization.pdf", dpi=150)
|
|
plt.savefig("test_rasterization.eps", dpi=150)
|
|
|
|
if not plt.rcParams["text.usetex"]:
|
|
plt.savefig("test_rasterization.svg", dpi=150)
|
|
# svg backend currently ignores the dpi
|
|
```
|
|
|
|
## 下载这个示例
|
|
|
|
- [下载python源码: rasterization_demo.py](https://matplotlib.org/_downloads/rasterization_demo.py)
|
|
- [下载Jupyter notebook: rasterization_demo.ipynb](https://matplotlib.org/_downloads/rasterization_demo.ipynb) |