2

投稿を読んで問題の答えを探していますが、見つかりません。これが基本的な考え方です。私はggplotを使用して、各棒をグループごとに分類し、プロットを横軸で反転させた積み上げ棒グラフを作成しています。「幅」オプションを使用してバーの幅を変更する方法を知っていますが、バーの幅を小さくすると、バーの間に多くの空白が残ります。質問:バー間の膨大なスペースを削除するにはどうすればよいですか?

私は、自分のニーズに合わせて調整された以前の質問と回答を使用して、再現可能なコードをまとめました。どんな助けでもいただければ幸いです!

df <- structure(list(A = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L,
3L), .Label = c("0-50,000", "50,001-250,000", "250,001-Over"), class = "factor"),
    B = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), .Label = c("0-50,000",
    "50,001-250,000", "250,001-Over"), class = "factor"), Freq = c(0.507713884992987,
    0.258064516129032, 0.23422159887798, 0.168539325842697, 0.525280898876405,
    0.306179775280899, 0.160958904109589, 0.243150684931507,
    0.595890410958904)), .Names = c("A", "B", "Freq"), class = "data.frame", row.names = c(NA,
-9L))

library(ggplot2)

bp <- ggplot(data=df, aes(x=A, y=Freq))+
    geom_bar(width=0.2,stat="identity",position="fill") + 
    theme_bw() + 
    theme(axis.title.y=element_blank()) +
    theme(axis.text.y=element_text(size=10)) +
    theme(axis.title.x=element_blank()) +
    theme(legend.text=element_text(size=10)) +
    theme(legend.title=element_text(size=10)) +
    scale_y_continuous(labels = percent_format()) 
  bp + geom_bar(colour="white",width=0.2,stat="identity",position="fill",show_guide=FALSE) + coord_flip() +theme(panel.grid.minor=element_blank(), panel.grid.major=element_blank())+ theme(legend.position="bottom")
4

1 に答える 1

4

を使用してプロット全体の縦横比を変更し、から引数coord_equalを削除できます。widthgeom_bar

library(ggplot2)
library(scales)

ggplot(data=df, aes(x=A, y=Freq)) +
    geom_bar(stat="identity",position="fill") + 
    theme_bw() + 
    theme(axis.title.y=element_blank()) +
    theme(axis.text.y=element_text(size=10)) +
    theme(axis.title.x=element_blank()) +
    theme(legend.text=element_text(size=10)) +
    theme(legend.title=element_text(size=10)) +
    scale_y_continuous(labels = percent_format()) +
    geom_bar(colour="white",stat="identity",position="fill",show_guide=FALSE) + 
    theme(panel.grid.minor=element_blank(), panel.grid.major=element_blank()) + 
    theme(legend.position="bottom") +
    coord_equal(1/0.2)   # the new command

このアプローチの欠点は、 では機能しないことcoord_flipです。

ここに画像の説明を入力

于 2012-12-13T12:46:52.130 に答える