希望のトピックは見つかりませんでした。棒グラフをカスタマイズする - 棒グラフをグラフの下の表と整列させる
私は、追加のデータを使用してthis偉大な答えからコードをカスタマイズしてみてください:
df <- structure(list(year = 1998:2007, work = c(0L, 4L, 0L, 1L, 0L, 0L, 1L, 2L, 2L, 3L), confid = c(0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 3L, 0L), jrs = c(0L, 1L, 0L, 0L, 1L, 9L, 6L, 4L, 21L, 2L)), .Names = c("year", "work", "confid", "jrs"), class = "data.frame", row.names = c(NA, -10L))
library(ggplot2)
library(reshape)
md <- melt(df, id=(c("year")))
library(grid)
library(gridExtra)
# Function to extract legend
# https://stackoverflow.com/a/13650878/496488
g_legend <- function(a.gplot){
tmp <- ggplot_gtable(ggplot_build(a.gplot))
leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box")
legend <- tmp$grobs[[leg]]
return(legend)}
p = ggplot(data=md, aes(x=year, y=value, fill=variable)) +
geom_bar(stat="identity")+
#theme(axis.text.x=element_text(angle=90, vjust=0.5, hjust=0.5))+
ggtitle("Score Distribution") +
labs(fill="")
# Extract the legend as a separate grob
leg = g_legend(p)
# Create a table grob
tab = t(df)
tab = tableGrob(tab, rows=NULL)
tab$widths <- unit(rep(1/ncol(tab), ncol(tab)), "npc")
# Lay out plot, legend, and table grob
grid.arrange(arrangeGrob(nullGrob(),
p + guides(fill=FALSE) +
theme(axis.text.x=element_blank(),
axis.title.x=element_blank(),
axis.ticks.x=element_blank()),
widths=c(1,8)),
arrangeGrob(arrangeGrob(nullGrob(),leg,heights=c(1,10)),
tab, nullGrob(), widths=c(6,20,1)),
heights=c(4,1))
私は最後に番号を変更しようとしましたが、私は再び同じ結果を受け取ります。テーブルはグラフよりも小さく、グラフのバーは正しい位置にありません。
最後に番号をカスタマイズするにはどうすればよいですか?
ここで私が見るもののスクリーンショット: 私がチェックした画像1では
それが今では2年には思われるとバーは1999年と同じ行にする必要がありますので。画像の2は、プロットと同じ幅を持たなければならないテーブルを示しており、年は対応する各バーから下になるはずです。
あなたが質問のドミノを作りました。それは必ずしも悪くはありません。あなたが別の質問を投稿し、あなたの質問を1つの投稿に尋ねたり編集したりしないというのは良い習慣です。それとあなたの良い質問に+1。あなたの質問については、そのために 'widths'を変更してみてください。 – Masoud
正確に何を変更したいのですか(また、新しいデータフレームとともに、eipi10の回答と比べて何が変更されましたか)?私がex。を走らせると、バーは私が期待しているように並んでいるようです(?)。 – lukeA