답변:
matplotlib
라텍스 문서를 사용 하고 있고 좋은 수치를 얻으려면 eps로 저장하십시오. 특히, 이미지를 플롯하는 명령을 실행 한 후 다음과 같이 시도하십시오.
plt.savefig('destination_path.eps', format='eps')
eps 파일이 가장 잘 작동하고 dpi
매개 변수가 문서에서 실제로보기 좋게 만드는 요소 라는 것을 발견했습니다 .
최신 정보:
저장하기 전에 Figure의 방향을 지정하려면 호출하기 전에 다음을 호출하기 만하면됩니다 plt.savefig
. 그러나 플롯을 만든 후에 는 다음을 호출하십시오 (이름이라는 축을 사용하여 플로팅했다고 가정 ax
).
ax.view_init(elev=elevation_angle, azim=azimuthal_angle)
여기서 elevation_angle
이다 (도) 수 (수직 Z 축에서 아래쪽) 극각을 지정하고, azimuthal_angle
지정 (z 축 주위) 방위각.
먼저 이미지를 플로팅 한 다음 회전하고 현재 각도 값이 실제 플롯 바로 아래 창 아래쪽에 나타나는 것을 확인하여 이러한 값을 결정하는 것이 가장 쉽다는 것을 알았습니다. x, y, z, 위치는 기본적으로 표시되지만 이미지를 클릭 + 드래그 + 회전하기 시작하면 두 각도로 대체됩니다.
format='eps'
경우 생략 할 수 있습니다 . 이 경우 형식은 파일 이름에서 유추됩니다.
결과를 추가하려면 matplotlib도 사용하십시오.
.eps는 모든 텍스트를 굵게 만들고 투명도를 제거했습니다. .svg는 실제로 내 그래프처럼 보이는 고해상도 사진을 제공했습니다.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
# Do the plot code
fig.savefig('myimage.svg', format='svg', dpi=1200)
많은 과학 저널에서 이미지가 무엇인지에 따라 1200 / 600 / 300dpi의 이미지를 요구하기 때문에 1200dpi를 사용했습니다. GiMP 또는 Inkscape에서 원하는 dpi 및 형식으로 변환합니다.
편집 : .svg가 벡터 그래픽이고 "무한 해상도"를 갖기 때문에 분명히 dpi는 중요하지 않습니다.
imshow(..)
는 그림의 어딘가에서 사용할 때 매우 중요합니다 . 이러한 비트 맵은 SVG에 포함될 때 래스터 화됩니다. 기본 DPI를 사용하면 결과가 화면에서 보는 것보다 훨씬 나빠서 출판물에 적합하지 않습니다.
Seaborn 과 함께 작업하는 경우matplotlib 대신 플롯 과 같이 .png 이미지를 저장할 수 있습니다.
matrix
개체 (pandas 또는 numpy)가 있고 히트 맵을 가져오고 싶다고 가정 해 보겠습니다 .
import seaborn as sb
image = sb.heatmap(matrix) # this gets you the heatmap
image.figure.savefig("C:/Your/Path/ ... /your_image.png") # this saves it
이 코드는 최신 버전의 seaborn과 호환됩니다. stackoverflow 주변의 다른 코드는 이전 버전에서만 작동했습니다.
내가 좋아하는 또 다른 방법은 이것입니다. 다음 이미지의 크기를 다음과 같이 설정합니다.
plt.subplots(figsize=(15,15))
그런 다음 나중에 콘솔에 출력을 플로팅하여 원하는 곳에 복사하여 붙여 넣을 수 있습니다. (seaborn은 matplotlib 위에 빌드되었으므로 문제가 없습니다.)