2012-05-31 5 views
3

내가 barchart()을 사용하고 난 이런 식으로 뭔가를 얻을 때 (내가 아는 이미지가 막대 차트가 아니라 내 auto.key이 같은 전설을 생산) :격자 auto.key - 선과 점을 조정하는 방법은 무엇입니까?

bar-chart

나는 점을 작성을하고 싶습니다 더 크게하거나 해당 색상의 직사각형으로 설정하십시오.

내가 densityplot()를 사용하고 난 이런 식으로 뭔가를 얻을 :

density-plot

나는 가능하면 선이 "두꺼운"하고 싶습니다.

답변

3

daroczig의 대답은 내가 이런 상황에 직면했을 때 일반적으로 할 것입니다. 그러나 일반적으로 내 색상을 지정하는 대신 lattice 기본 색상을 사용하는 것을 선호합니다.

lattice.theme <- trellis.par.get() 
col <- lattice.theme$superpose.symbol$col 
pl <- xyplot(X ~ Y, groups=Z, data=dframe, pch=1:nlevels(dframe$Z), 
      type='o', key=list(text=list(levels(dframe$Z)), space='top', 
           points=list(pch=1:nlevels(dframe$Z), col=col), 
           lines=list(col=col), 
           columns=nlevels(dframe$Z))) 
+0

thx, 이것은 매우 도움이되었다! – Druss2k

6

?xyplot을 참조하십시오. 일부 세부 정보 :

색상 변경에 대한 첫 번째 질문은 col 인수를 사용하십시오. 대신 수정 기호 barplot (여기 혼동)의 산점도를 처리하려면

barplot(table(mtcars$am, mtcars$gear), col = c("green", "yellow")) 

enter image description here

, 그때 auto.key 불행히도 옵션 아니지만,이 같은 문제없이 작동합니다 :

두 번째 질문은 lwd을 사용하기위한
xyplot(mtcars$hp ~ mtcars$wt, groups = mtcars$gear, 
     key = list(text = list(as.character(unique(mtcars$gear))), 
        points = list(pch = 10:12, col = 12:14)), pch = 10:12, col = 12:14) 

enter image description here

:

densityplot(mtcars$hp, lwd = 3) 

enter image description here

+0

again! 나는 약간을 조정했다. 그러나 근본적으로 이것은 내가 찾고 있었던 것이었다! 친절한 점에 – Druss2k

4

난 그냥 기본적으로이 같은 문제에 시간의 좋은 덩어리를 보냈다 :

이 수행하여 그렇게 할 수 있습니다. 어떤 이유로, @daroczig 스타일 접근법은 밀도 플롯에서 라인 유형 (키 포함)을 변경하는 데는 효과가 없었습니다.

# Maybe we'll want this later 
old.pars <- trellis.par.get() 

trellis.par.set(superpose.symbol=list(pch = 10:12, col = 12:14)) 
xyplot(hp ~ wt, data=mtcars, groups = gear, auto.key=TRUE) 

# Optionally put things back how they were 
trellis.par.set(old.pars) 

실제로 덜 입력있다 이런 식으로 (당신이 내 저장 및 복원을 계산에 포함되지 않습니다 특히 : 어떤 경우에

, 나는 "오른쪽"접근 방식과 같이 auto.key와 함께 trellis.par.set을 사용하는 것입니다 생각 원래 트 렐리 스 파스), 중복성이 적습니다 (DRY 코딩이 가능함). 또한 나에게있어서 key을 사용하여 여러 개의 열을 쉽게 만드는 방법을 알 수는 없지만 columnsauto.key 목록의 요소 중 하나로 추가 할 수 있습니다.

또한 올바른 요소를 변경해야합니다. 예를 들어 plot.symbol을 변경 한 경우 (옳은 것처럼 들릴지도 모름) 아무 것도하지 않습니다.일반적으로 xyplot을 기반으로하는 경우에는 superpose.*이 기호, 선 등을 실제로 수정하는 데 올바른 요소라고 생각합니다.

+0

예 격자는 매우 강력하지만 모든 걸 알아야합니다. 즉, 모든 걸 설정합니다 (말했듯이) 꽤 오랜 시간이 걸립니다! – Druss2k

+2

또한 세션 기본값을 설정하는 대신 호출에'par.settings'을 포함시킬 수 있습니다. http://stackoverflow.com/a/9307134/210673 – Aaron

+0

하나의 플롯 호출에 대한 매개 변수 만 변경하려는 경우이를 수행하는 더 좋은 방법입니다. –

관련 문제