2014-07-24 3 views
0

저는 며칠 동안 그래프를 얻으려고했지만 성공하지 못했습니다. 정말 도움이 될 것입니다.R - 격자 및 누적 막대를 사용하여 플로팅하기 (백분율)

graficaOccorrenzeContrattiPagamenti = function(tabellaDati) { 
require(plyr) 
tabellaDatiMelt = melt(tabellaDati, id = c('Regione','Pagamento')) 
risultato = tabellaDatiMelt[order(tabellaDatiMelt$value,decreasing = TRUE, na.last=NA),] 
grafico <- nPlot(value ~ Regione, group = 'Pagamento', data = risultato, type = 'multiBarChart') 
grafico$xAxis(rotateLabels = -45) 
grafico$set(reduceXTicks = FALSE) 
grafico$chart(stacked = TRUE) 
return(grafico) 
} 
:

내가 saveral 예, 내가 좀하고 싶습니다 here

haireye <- subset(as.data.frame(HairEyeColor), Sex == "Male") 
n1 <- nPlot(Freq ~ Eye, group = 'Hair', data = haireye, type = 'multiBarChart') 
n1$chart(stacked = TRUE, forceY = 120) 

결과에서 특히이 하나를 복제하려고했습니다 이건 내 코드는 기본적으로 this one

입니다

이 값은 nplot에 전달 된 "risultato"의 값입니다.

    Regione Pagamento variable value 
12    VENETO Bollettino Valore 1299 
31    VENETO Bonifico Valore 13 
51    VENETO  RID Valore 969 
60    VENETO  Vuoto Valore 25 
21   VALLE D'AOSTA Bollettino Valore  1 
69   VALLE D'AOSTA  Vuoto Valore  0 
70   VALLE D'AOSTA Bonifico Valore  0 
71   VALLE D'AOSTA  RID Valore  0 
1     UMBRIA Bollettino Valore 774 
22    UMBRIA Bonifico Valore  6 
34    UMBRIA  RID Valore 161 
72    UMBRIA  Vuoto Valore  0 
20 TRENTINO ALTO ADIGE Bollettino Valore 47 
53 TRENTINO ALTO ADIGE  RID Valore 22 
73 TRENTINO ALTO ADIGE  Vuoto Valore  0 
74 TRENTINO ALTO ADIGE Bonifico Valore  0 
2    TOSCANA Bollettino Valore 1475 
28    TOSCANA Bonifico Valore  5 
35    TOSCANA  RID Valore 399 
59    TOSCANA  Vuoto Valore  9 
7    SICILIA Bollettino Valore 18089 
29    SICILIA Bonifico Valore 11 
38    SICILIA  RID Valore 462 
57    SICILIA  Vuoto Valore 40 
16    SARDEGNA Bollettino Valore 23 
49    SARDEGNA  RID Valore  2 
75    SARDEGNA  Vuoto Valore  0 
76    SARDEGNA Bonifico Valore  0 
3     PUGLIA Bollettino Valore 6258 
27    PUGLIA Bonifico Valore  3 
40    PUGLIA  RID Valore 382 
66    PUGLIA  Vuoto Valore  2 
14    PIEMONTE Bollettino Valore 1005 
33    PIEMONTE Bonifico Valore  1 
43    PIEMONTE  RID Valore 480 
63    PIEMONTE  Vuoto Valore  4 
18     NULL Bollettino Valore 250 
48     NULL  RID Valore 15 
77     NULL  Vuoto Valore  0 
78     NULL Bonifico Valore  0 
8     MOLISE Bollettino Valore 3283 
45    MOLISE  RID Valore 136 
55    MOLISE  Vuoto Valore  3 
79    MOLISE Bonifico Valore  0 
4     MARCHE Bollettino Valore 195 
36    MARCHE  RID Valore 74 
80    MARCHE  Vuoto Valore  0 
81    MARCHE Bonifico Valore  0 
11    LOMBARDIA Bollettino Valore 2395 
24    LOMBARDIA Bonifico Valore 33 
42    LOMBARDIA  RID Valore 692 
64    LOMBARDIA  Vuoto Valore  5 
15    LIGURIA Bollettino Valore 88 
47    LIGURIA  RID Valore 29 
62    LIGURIA  Vuoto Valore  2 
82    LIGURIA Bonifico Valore  0 
5     LAZIO Bollettino Valore 12344 
23     LAZIO Bonifico Valore 37 
37     LAZIO  RID Valore 468 
56     LAZIO  Vuoto Valore 10 
19 FRIULI VENEZIA GIULIA Bollettino Valore 937 
52 FRIULI VENEZIA GIULIA  RID Valore 682 
61 FRIULI VENEZIA GIULIA  Vuoto Valore 12 
83 FRIULI VENEZIA GIULIA Bonifico Valore  0 
17  EMILIA ROMAGNA Bollettino Valore 442 
32  EMILIA ROMAGNA Bonifico Valore  1 
50  EMILIA ROMAGNA  RID Valore 123 
68  EMILIA ROMAGNA  Vuoto Valore  2 
6    CAMPANIA Bollettino Valore 6099 
25    CAMPANIA Bonifico Valore 66 
39    CAMPANIA  RID Valore 204 
65    CAMPANIA  Vuoto Valore 36 
13    CALABRIA Bollettino Valore 13117 
30    CALABRIA Bonifico Valore  6 
41    CALABRIA  RID Valore 501 
54    CALABRIA  Vuoto Valore 18 
10   BASILICATA Bollettino Valore 989 
26   BASILICATA Bonifico Valore  4 
44   BASILICATA  RID Valore 44 
67   BASILICATA  Vuoto Valore  3 
9    ABRUZZO Bollettino Valore 1958 
46    ABRUZZO  RID Valore 45 
58    ABRUZZO  Vuoto Valore  3 
84    ABRUZZO Bonifico Valore  0 

또한 "변수"열을 제거하려고 시도했는데 일부 prbolem이 발생할 수는 있지만 사용할 수 없습니다. hPlot, dPlot, uPlot, mPlot 중 하나에서 성공하지 못했습니다. 만약 내가 R 언어에 익숙하지 않고 모든 것이 어떻게 작동하는지 아직도 고민하고 있기 때문에 나는 명백한 말도 안되는 부분을 적어주십시오. 이 같이 할 수있는 딤플 라이브러리

답변

1

안녕하세요 :

d1 = dPlot(y = "Regione", x = "value",data = risultato, groups = "Pagamento",type = "bar") 
d1$yAxis(type = "addCategoryAxis", orderRule = "Regione") 
d1$xAxis(type = "addPctAxis") 
d1$legend(
    x = 0, 
    y = 0, 
    width = 500, 
    height = 75, 
    horizontalAlign = "right" 
) 
d1 

당신은 rCharts here

+0

대단히 감사합니다! 자바 스크립트 대신 R 코드를 볼 수있는 링크를 위해 더 많은 것을 찾을 수 있습니다. – user3872474

+1

딤플 루트로가는 경우 더 많은 링크가 있습니다. http://timelyportfolio.github.io/rCharts_dimple/gallery/ http://timelyportfolio.github.io/docs/_build/html/dimple/index.html – timelyportfolio

2

많은 예를 찾을 수 있습니다 다음은 nPlot를 사용하여 관심있는 플롯을 얻을 수있는 하나의 방법입니다. 기본 아이디어는 데이터를 플롯하기 전에 데이터를 변환하여 Freq 열과 더불어 백분율도 갖도록하는 것입니다. 여기

library(plyr); library(rCharts) 
haireye <- subset(as.data.frame(HairEyeColor), Sex == "Male") 
haireye <- ddply(haireye, .(Eye), transform, Perc = Freq/sum(Freq)*100) 
n1 <- nPlot(Freq ~ Eye, group = 'Hair', data = haireye, type = 'multiBarChart') 
n1$chart(stacked = TRUE, forceY = 120) 
n1 

당신이 온라인으로 재생할 수있는 코드의 interactive version입니다.