리눅스에서 출판 품질의 음모를 만드는 가장 쉬운 방법은 무엇입니까?


17

CSV 파일이 있다고 가정 할 수 있으며 하나의 플롯에 여러 개의 라인이 있고 간단한 범례가있는 매우 기본적인 라인 플롯이 필요합니다.


2
'게시물 품질'을 어떻게 정의합니까? 예를 들어 색상 사용, 선 너비 등과 같이 원하는 부분을 자세히 설명하십시오. 대신 글꼴 크기에 중점을 두어야합니까?
Egon Willighagen

답변:


14

가장 쉬운 방법은 R을 사용하는 것입니다

사용 read.csvR에 데이터를 입력하려면, 다음의 조합을 사용 plot하고 line명령을

정말로 특별한 것을 원한다면 ggplot2 또는 lattice 라이브러리를 살펴보십시오 .

에서 ggplot2다음 명령 당신은 시작한다.

require(ggplot2)
#You would use read.csv here
N = 10
d = data.frame(x=1:N,y1=runif(N),y2=rnorm(N), y3 = rnorm(N, 0.5))
p = ggplot(d)

p = p+geom_line(aes(x, y1, colour="Type 1"))
p = p+geom_line(aes(x, y2, colour="Type 2"))
p = p+geom_line(aes(x, y3, colour="Type 3"))
#Add points
p = p+geom_point(aes(x, y3, colour="Type 3"))
print(p)   

이것은 당신에게 다음 줄거리를 줄 것입니다 :

선 그림 http://img84.imageshack.us/img84/6393/tmpq.jpg

R에 플롯 저장

R로 플롯을 저장하는 것은 간단합니다.

#Look at ?jpeg to other different saving options
jpeg("figure.jpg")
print(p)#for ggplot2 graphics
dev.off()

대신에 또는 포스트 스크립트 파일 jpeg로 저장할 수도 pdf있습니다.

#This example uses R base graphics
#Just change to print(p) for ggplot2
pdf("figure.pdf")
plot(d$x,y1, type="l")
lines(d$x, y2)
dev.off()

파일로 저장하는 것은 어떻습니까?
카슈 우 Lew

1
또는 멜트와 qplot으로 조금 더 간결하게 :m <- melt(d, id = "x"); qplot(variable, value, data = m, colour = variable)
hadley

실제로, 더 쉬운 방법은 ggplot2와 함께 R + deducer를 사용하는 것입니다 (향후 몇 개월 내에 출시 될 새로운 버전이 있습니다. 현재 베타 버전을 사용할 수 있습니다)
Tal Galili

4
좋은 예이지만 음모는 출판 품질이 거의 아닙니다. 또는 적어도 내가 출판 한 저널 중 어느 것도 그것을 받아들이지 않을 것입니다.
Matti Pastell

3
"거의 출판 품질"???? 나는 그것이 완벽하지 않다는 것을 알고있다- "... 당신은 당신을 시작해야한다." 그러나 약간의 추가 작업, 즉 축 레이블을 사용하면 괜찮습니다. BTW, 어떤 저널에 출판합니까?
csgillespie

13

그래픽을 위해 R을 넘어 가기는 어렵습니다. 3 줄로 원하는 것을 할 수 있습니다. 예를 들어 csv 파일에 4 개의 열이 있다고 가정합니다.

x <- read.csv("file.csv")
matplot(x[,1],x[,2:4],type="l",col=1:3)
legend("topleft",legend=c("A","B","C"),lty=1,col=1:3)

그것을 출판에 넣는 것은 어떻습니까?
카슈 우 Lew

5
R은 최고 품질의 그래픽을 만들어냅니다. 국제 연구 저널의 편집자로서 저는 모든 저자들이 R을 사용하기를 바랍니다.
Rob Hyndman

1
.. 질문에 대한 나의 의견을보십시오 ... 편집자 관점에서 '게시물 품질'또는 '최고 품질'을 어떻게 정의하십니까?
Egon Willighagen

19
나는 벡터 그래픽 (jpegs 없음), Tufte & Cleveland의 원칙에 따른 그래픽 디자인, 읽을 수있는 글꼴, 어수선한 범례, 음영이없는 배경, 적절한 축 제한 및 눈금 간격, 레이블이있는 축, 텍스트의 겹침이없고 문자 또는 선을 그리는 것을보고 싶습니다. 등 대부분의 작성자는 소프트웨어의 기본 설정을 사용하므로 좋은 소프트웨어의 기본값이 좋습니다. 이것은 Excel이 비참하게 실패하는 곳이며 R은 꽤 잘합니다. 그러나 R에서는 고르지 않은 그래프를 생성하고 Excel에서는 좋은 그래프를 생성 할 수 있습니다. R로 고품질 그래픽을 제작하는 것이 더 쉽습니다.
Rob Hyndman

12

R이 정답입니다. Rob과 Colin이 이미 말한 내용에 추가하려고합니다.

플롯의 품질을 향상 시키려면 출력 장치에 Cairo 패키지 를 사용 하는 것을 고려해야 합니다. 최종 그래픽 의 품질 이 크게 향상됩니다 . 플로팅하기 전에 간단히 함수를 호출하면 출력 장치로 Cairo로 리디렉션됩니다.

Cairo(600, 600, file="plot.png", type="png", bg="white")
plot(rnorm(4000),rnorm(4000),col="#ff000018",pch=19,cex=2) # semi-transparent red
dev.off() # creates a file "plot.png" with the above plot

마지막으로 출판물에 게재하는 것이 그 역할을 Sweave합니다. 그것은 당신의 종이 사소한 작업을 결합 플롯을 만드는 (그리고 무언가와 함께 당신을 떠날의 추가 혜택이 재현 하고 이해를). cacheSweave오래 실행되는 계산이있는 경우 사용하십시오 .


2
I를 쉽게 편집 할 수 있습니다 SVG처럼 - 아마 더 나은 비트 맵 이미지를 생산하기 위해 카이로를 사용하는 것보다 정장 인쇄 해상도 항상 크기를 조정하고, 그래서 더 잘, 해상도 독립적 인 벡터와 같은 그래프를 저장하는 것입니다 잉크 스케이프 .
naught101

10

내가 가장 좋아하는 도구는 mathplotlib 이 포함 된 Python입니다 .

이점들:

  • 실험을 수행하는 환경에서 즉시 내보내기
  • scipy / numpy 데이터 구조 지원
  • 익숙한 구문 / 옵션 (matlab 배경)
  • 라벨 / 범례 등에 대한 완벽한 라텍스 지원. 문서의 나머지 부분과 동일한 조판!

특히 svg 및 eps와 같은 다른 파일 형식의 경우 savefig 의 format 매개 변수를 사용하십시오.

예 : input.csv

"라인 1", 0.5,0.8,1.0,0.9,0.9
"라인 2", 0.2,0.7,1.2,1.1,1.1

암호:

import csv
import matplotlib.pyplot as plt

legends = []
for row in csv.reader(open('input.csv')):
    legends.append(row[0])
    plt.plot(row[1:])

plt.legend(legends)
plt.savefig("out.svg", format='svg')

완성을 위해 코드 스 니펫을 넣을 수 있습니까? 나중에이 페이지를 찾는 사람들에게 매우 유용합니다.
카슈 우 Lew

@ Łukasz 흠, svg 그림을 업로드하는 방법에 대한 제안?
피터 Smit

4
matplotlib을 사용하면 LaTeX를 사용하여 플롯의 모든 타이포그래피를 렌더링하여 시각적으로 완벽하게 통합 할 수 있습니다.
Benjamin Bannier

matplotlib이 아직 R에 통합되지 않은 이유가 궁금합니다.
naught101

6

널리 사용되는 세 가지 시각화 라이브러리의 샘플 갤러리를 살펴보십시오.

처음 두 개에서는 관련 소스 코드도 볼 수 있습니다. 간단한 코드는 많지 않고 간단한 코드입니다. 프리 퓨즈 케이스에는 필수 Java 상용구 코드가 있습니다. 세 가지 모두 다수의 백엔드 / 장치 / 렌더러 (pdf, ps, png 등)를 지원합니다. 세 가지 모두 고품질 그래픽을 명확하게 구현할 수 있습니다.

나는 그것이 당신이 가장 편하게 쓰는 언어로 귀결된다고 생각합니다.



1

쉬운 상대입니다. 사용법을 알기 전까지는 쉬운 도구가 없습니다. 일부 도구는 처음에는 더 어려워 보일 수 있지만 일단 숙달하면 훨씬 세밀한 제어가 가능합니다.

최근에 pgfplots로 플롯을 시작했습니다 . LaTeX 패키지 (위에있는 것 tikz)는 특히 물건을보기 좋게 만드는 데 좋습니다. 글꼴은 문서의 나머지 부분과 일치하며 플롯을 시각적으로 통합하는 것이 훨씬 쉽습니다. 플롯을 만드는 가장 쉬운 옵션은 아니지만 출판 품질이 좋은 플롯을 만드는 것은 쉬운 방법입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.