0

ggplot() を使用して棒グラフを作成する方法について 2 つの質問があります。

データ形式の表示方法 (Sep-12)

9月12日の形式で日付を表示したいと思います。私のデータは四半期ごとの要約です。3 月、6 月、9 月、12 月の四半期を表示したいと思います。ただし、ggplot() 関数内で as.Date(YearQuarter) を使用しました。これは、4 月、7 月、10 月、1 月の異なるシーケンスを示しています。

y軸の制限を増やすには?

y 軸は 70% に設定されており、値ラベルの 1 つが画像からはみ出しています。ylim(0,1) を追加して、y 制限を 1 に増やしました。ただし、y 軸にパーセンテージが表示されなくなったため、パーセンテージ形式が失われました。

x4.can.t.m <- structure(list(NR_CAT = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L), .Label = c("0%", "1 to 84%", "85% +"
), class = "factor"), TYPE = structure(c(1L, 1L, 1L, 2L, 2L, 
2L, 3L, 3L, 3L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 1L, 1L, 1L, 
2L, 2L, 2L, 3L, 3L, 3L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 1L, 
1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L), .Label = c("PM BUSINESS", "PM CONSUMER", 
"PREPAY"), class = "factor"), YearQuarter = structure(c(1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), .Label = c("2011-09-01", 
"2011-12-01", "2012-03-01", "2012-06-01", "2012-09-01"), class = "factor"), 
    value = c(0.5, 0, 0.5, 0.35, 0, 0.65, 0.28, 0.02, 0.7, 0.4, 
    0, 0.6, 0.38, 0, 0.62, 0.43, 0.01, 0.56, 0.57, 0, 0.43, 0.35, 
    0, 0.65, 0.39, 0.01, 0.6, 0.55, 0, 0.45, 0.4, 0.02, 0.58, 
    0.35, 0.02, 0.63, 0.35, 0, 0.65, 0.55, 0.01, 0.44, 0.47, 
    0, 0.53)), .Names = c("NR_CAT", "TYPE", "YearQuarter", "value"
), row.names = c(NA, -45L), class = "data.frame")

これは私のプロットコードです:

x4.can.t.m$YearQuarter <- as.Date(x4.can.t.m$YearQuarter)
x4.can.t.d.bar <- ggplot(data=x4.can.t.m, aes(x=YearQuarter, y=value,fill=NR_CAT)) + 
                  geom_bar(stat="identity",position = "dodge",ymax=NR_CAT+0.2) +
              facet_wrap(~TYPE,ncol=1) +
                  geom_text(aes(label =paste(round(value*100,0),"%",sep="")), 
                             position=position_dodge(width=0.9), 
                             vjust=-0.25,size=3)  +
        scale_y_continuous(formatter='percent',ylim=1) +
            labs(y="Percentage",x="Year Quarter") +
            ylim(0,100%)


x4.can.t.d.bar +scale_fill_manual("Canopy Indicators",values=tourism.cols(c(6,9,8)))+
                opts(title="Canopy Indicator: All Customers portout for Network 
                            Issues",size=4)
4

1 に答える 1

1

古いバージョンの ggplot を使用しているようです。以下はggplot 0.2.9.1用です。プロットを機能させるには、いくつかのことを修正する必要がありました。の元の定義から始めますx4.can.t.m

x4.can.t.m$YearQuarter <- format(as.Date(x4.can.t.m$YearQuarter),"%b-%y")

library("scales")
ggplot(data=x4.can.t.m, aes(x=YearQuarter, y=value, fill=NR_CAT)) + 
  geom_bar(stat="identity", position = "dodge") +
  geom_text(aes(label = paste(round(value*100,0),"%",sep=""), group=NR_CAT), 
            position=position_dodge(width=0.9), 
            vjust=-0.25, size=3)  +
  scale_y_continuous("Percentage", labels=percent, limits=c(0,1)) +
  labs(x="Year Quarter") +
  scale_fill_discrete("Canopy Indicators") + 
  facet_wrap(~TYPE,ncol=1) +
  ggtitle("Canopy Indicator: All Customers portout for Network Issues") +
  theme(plot.title = element_text(size=rel(1.2)))

ここに画像の説明を入力

質問の最初の部分はYearQuarter、文字列のままにして、必要な形式にフォーマットすることで実現されます。

2 番目の部分は制限を指定scale_y_continuousし、引数を使用しlabelsて書式設定関数を指定します。library("scales")この部分が機能するために必要であることに注意してください。

于 2012-11-28T00:04:59.397 に答える