메모
전체 예제 코드를 다운로드 하려면 여기 를 클릭 하십시오.
벡터 그래픽의 래스터화 #
래스터화는 벡터 그래픽을 래스터 이미지(픽셀)로 변환합니다. 렌더링 속도를 높이고 대용량 데이터 세트에 대해 더 작은 파일을 생성할 수 있지만 고정 해상도 비용이 발생합니다.
래스터화 사용 여부는 아티스트별로 지정할 수 있습니다. 이는 축 및 텍스트와 같은 다른 아티스트를 위한 벡터 그래픽의 이점을 유지하면서 대규모 아티스트의 파일 크기를 줄이는 데 유용할 수 있습니다. 예를 들어 복잡 pcolormesh
하거나
contourf
래스터화하여 훨씬 간단하게 만들 수 있습니다. 래스터화 설정은 PDF, SVG 또는 PS와 같은 벡터 백엔드에만 영향을 미칩니다.
래스터화는 기본적으로 비활성화되어 있습니다. 활성화하는 방법에는 두 가지가 있으며 결합할 수도 있습니다.
개별 아티스트를 설정 하거나 아티스트를 생성할 때 래스터화
set_rasterized
된 키워드 인수를 사용합니다 .Axes.set_rasterization_zorder
지정된 값보다 작은 zorder로 모든 아티스트를 래스터화하도록 설정 합니다.
래스터화된 아티스트의 저장소 크기와 해상도는 물리적 크기와 에 dpi
전달된 매개변수
값에 따라 결정됩니다 savefig
.
메모
HTML 문서에 표시된 이 예제의 이미지는 벡터 그래픽이 아닙니다. 따라서 래스터화 효과를 설명할 수 없습니다. 이 예제를 로컬에서 실행하고 생성된 그래픽 파일을 확인하십시오.
import numpy as np
import matplotlib.pyplot as plt
d = np.arange(100).reshape(10, 10) # the values to be color-mapped
x, y = np.meshgrid(np.arange(11), np.arange(11))
theta = 0.25*np.pi
xx = x*np.cos(theta) - y*np.sin(theta) # rotate x by -theta
yy = x*np.sin(theta) + y*np.cos(theta) # rotate y by -theta
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, constrained_layout=True)
# pcolormesh without rasterization
ax1.set_aspect(1)
ax1.pcolormesh(xx, yy, d)
ax1.set_title("No Rasterization")
# pcolormesh with rasterization; enabled by keyword argument
ax2.set_aspect(1)
ax2.set_title("Rasterization")
m = ax2.pcolormesh(xx, yy, d, rasterized=True)
# pcolormesh with an overlaid text without rasterization
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")
# pcolormesh with an overlaid text without rasterization; enabled by zorder.
# Setting the rasterization zorder threshold to 0 and a negative zorder on the
# pcolormesh rasterizes it. All artists have a non-negative zorder by default,
# so they (e.g. the text here) are not affected.
ax4.set_aspect(1)
m = ax4.pcolormesh(xx, yy, d, zorder=-10)
ax4.text(0.5, 0.5, "Text", alpha=0.2,
va="center", ha="center", size=50, transform=ax4.transAxes)
ax4.set_rasterization_zorder(0)
ax4.set_title("Rasterization z$<-10$")
# Save files in pdf and eps format
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
The PostScript backend does not support transparency; partially transparent artists will be rendered opaque.
참조
다음 함수, 메서드, 클래스 및 모듈의 사용이 이 예제에 표시됩니다.
스크립트의 총 실행 시간: ( 0분 2.150초)