0

私はこのようないくつかのデータを持っています:

myd <- structure(list(var1 = structure(1:4, .Label = c("II", "III", 
       "IV", "V"), class = "factor"), zero_co = c(15.15152, 3.030303, 
        0, 0), non_zero_CO = c(84.84848, 96.969697, 100, 100), size = c(230, 
        813, 317, 1532)), .Names = c("var1", "zero_co", "non_zero_CO", 
        "size"), row.names = c(NA, -4L), class = "data.frame")

# myd
# I                   II         III   IV     V  
# zero_co       15.15152    3.030303    0     0
# non-zero CO   84.84848   96.969697  100   100
# size         230.00000  813.000000  317  1532

sizey軸と他の2つの変数に、x軸に積み上げ棒グラフとしてプロットしzero_coたいnon-zero COと思います。私はこれを使用してプロットしようとしていますgplotsggplots、問題を見つけています。これをプロットするにはどうすればよいですか?

4

3 に答える 3

4

私がそれを正しく理解していれば、これが解決策です。x軸とy軸の両方に量的変数があるため、棒グラフでは実行できません。長方形を使用する必要があります(とにかく棒のように見えます)。

myd <- data.frame (var1 = c("II", "III", "IV", "V"), zero_co = c(15.15152 , 3.030303,    0,     0),
             non_zero_CO = c(84.84848,   96.969697,  100,   100),
              size = c(230.00000,  813.000000,  317,  1532))

    require(ggplot2)

ggplot(myd) + geom_rect(aes(xmin = 0, xmax = zero_co, ymin =size , ymax =size + 80 ), fill = "lightgreen") +
geom_rect(aes(xmin = zero_co, xmax = zero_co + non_zero_CO, ymin =size , ymax =size + 80 ), fill = "darkblue") + theme_bw()

あなたにプロットを与えます:

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

于 2013-01-08T16:55:46.853 に答える
3

これが私の限られた理解に基づいて私が到達できる場所です:

myd <- data.frame (var1 = c("II", "III", "IV", "V"), zero_co = c(15.15152 , 3.030303,    0,     0),
             non_zero_CO = c(84.84848,   96.969697,  100,   100),
              size = c(230.00000,  813.000000,  317,  1532))
myd1 <- as.matrix (t(myd[,2:3]))

barplot(myd1)

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

于 2013-01-08T15:19:31.567 に答える
1

最終的なプロットがどのように見えるかはわかりませんが、ここにggplot2提案があります。

まず、データを長い形式に再形成します。

library(reshape2)
myd_long <- melt(myd, measure.vars = c("zero_co", "non_zero_CO"))

絶対値を計算します(私は。valueのパーセンテージを表すと思いsizeます):

myd_long <- within(myd_long, valueAbs <- size * value / 100)

プロット:

library(ggplot2)    

ggplot(myd_long, aes(y = valueAbs, x = var1, fill = variable)) +
  geom_bar(stat = "identity")

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

于 2013-01-08T15:54:41.237 に答える