오늘 코스에 대한 리포트를 작성하고 일부 필드의 등고선 그림을 포함해야했습니다. 내가하기 matplotlib (혼란 헤더를 무시)와 이런 짓을 :matplotlib을 사용하여 만든 그림의 크기를 줄입니다.
"Isocurvas.txt"나는 정말 (터치 같은 데이터 또는 무언가를 제거하지 않는 3 열 파일입니다import numpy as np
import matplotlib
from matplotlib import rc
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
## for Palatino and other serif fonts use:
#rc('font',**{'family':'serif','serif':['Palatino']})
rc('text', usetex=True)
from matplotlib.mlab import griddata
import matplotlib.pyplot as plt
import numpy.ma as ma
from numpy.random import uniform
from matplotlib.colors import LogNorm
fig = plt.figure()
data = np.genfromtxt('Isocurvas.txt')
matplotlib.rcParams['xtick.direction'] = 'out'
matplotlib.rcParams['ytick.direction'] = 'out'
rc('text', usetex=True)
rc('font', family='serif')
x = data[:,0]
y = data[:,1]
z = data[:,2]
# define grid.
xi = np.linspace(0.02,1, 100)
yi = np.linspace(0.02,1.3, 100)
# grid the data.
zi = griddata(x,y,z,xi,yi)
# contour the gridded data.
CS = plt.contour(xi,yi,zi,25,linewidths=0,colors='k')
CS = plt.contourf(xi,yi,zi,25,cmap=plt.cm.jet)
plt.colorbar() # draw colorbar
# plot data points.
plt.scatter(x,y,marker='o',c='b',s=0)
plt.xlim(0.01,1)
plt.ylim(0.01,1.3)
plt.ylabel(r'$t$')
plt.xlabel(r'$x$')
plt.title(r' Contour de $\rho(x,t)$')
plt.savefig("Isocurvas.eps", format="eps")
plt.show()
, 같으면 나를 위해 일하지 마라.) 내 문제는 그림 크기가 1.8Mb로 나에게 너무 많은 것입니다. 피겨 자체는 전체 보고서의 나머지 부분보다 컸으며 pdf를 열었을 때 매우 원활하지 않았습니다.
그래서, 내 질문은 : 그림의 품질에 희생없이이 크기를 줄일 수있는 방법이
가 있습니까? 내가 어떤 솔루션을 찾고 있어요, 반드시 파이썬 관련이 없습니다.이것은 .png 그림이며 매개 변수가 약간 다릅니다. .png를 사용하면 픽셀을 볼 수 있습니다. 픽셀은별로 좋아하지 않으므로 pdf 또는 eps가 바람직합니다.
감사합니다.
울퉁불퉁 한 가장자리 (강렬한 파란색과 중간 파란색 사이)는 픽셀 수준의 문제는 아니지만 데이터 또는 메서드 아티팩트로 인한 것일 수 있습니다. –
어떻게 두 번 윤곽을 그리는가? 아마도 벡터 파일 출력에 상당한 오버 헤드가 추가 될 것입니다 (분명히 png 또는 다른 래스터 화 된 형식의 파일 크기에는 아무런 영향이 없습니다) – pelson
데이터 파일 ("Isocurvas.txt")의 크기는 – tacaswell