-1

ggplot2パッケージとmatマトリックス内のデータを使用して次の棒グラフを作成するのを手伝ってもらえますか?

mat <- matrix(c(70.93,78.58,78.72,69.24,62.53,43.85,83.49,70.00,78.30,78.11,71.16,63.82,47.37,89.87),ncol=2)
colnames(mat) <- c("Crude","Standardized")
rownames(mat) <- 2006:2012

library(gplots)
library(RColorBrewer)
my_palette <- palette(brewer.pal(7,"Set1"))

barplot2(mat,
main="Crude and Standardized Rates",
xlab="Type", ylab="Rate", xlim=c(0,20), ylim=c(40,100),
col=my_palette, beside=TRUE, plot.grid = TRUE, xpd=FALSE)
legend(locator(1), rownames(mat), title ="Year",fill=my_palette)

ここに画像の説明を入力してください

4

1 に答える 1

7

これは非常に単純なggplotグラフです。原則は、データを長い形式に溶かしてから、美学をマッピングすることです。醸造所のカラーパレットを適用するのは、スケールを使用するだけです。

library("reshape2")

tmp <- melt(mat)
names(tmp) <- c("Year", "Type", "Rate")

library("ggplot2")

ggplot(tmp, aes(x=Type, y=Rate, fill=factor(Year))) +
    geom_bar(stat="identity", position="dodge", colour="black") +
    scale_fill_brewer(type="qual", palette=1)

ここに画像の説明を入力してください

編集:

コメントで、バーを拡大する方法を尋ねたところ、@joranがそれcoord_cartesianを行う応答を返しました。しかし、私は彼の懸念を繰り返したいと思います。そんなことしないでください。バーは面積ごとの値を表します。0から始まらないということは、違いを歪めていることを意味します。表現を変更して、違いを示すことができます。

ggplot(tmp, aes(x=Year, y=Rate, colour=Type)) +
    geom_point() +
    geom_line()

ここに画像の説明を入力してください

これは、軸に0が含まれていない場合に歪まない、位置によって値を表す点と線を使用します。

于 2013-01-11T19:31:44.563 に答える