[解決済み] 美学は長さ1か、データと同じ長さでなければならないProblems
2022-02-05 21:07:18
質問
X値を測定値のサブセット、Y値を測定データの別のサブセットとしてプロットを作成したいのですが。
以下の例では、4つの商品p1, p2, p3, p4があります。それぞれ、傾き、色、バージョンに応じて価格が設定されています。 P3製品(Y軸)とP1製品(X軸)を描写する多面的なプロットを作成したいのですが、どうすればよいでしょうか?
以下のように試したのですが、以下のようなエラーが出て惨敗しました。
エラーです。美学は長さ1であるか、またはそれと同じ長さでなければなりません。 dataProblems:subset(price, product == "p1"), subset(price, product) == p3") となります。
library(ggplot2)
product=c("p1","p1","p1","p1","p1","p1","p1","p1","p2","p2","p2","p2","p2","p2","p2","p2","p3","p3","p3","p3","p3","p3","p3","p3","p4","p4","p4","p4","p4","p4","p4","p4")
skew=c("b","b","b","b","a","a","a","a","b","b","b","b","a","a","a","a","b","b","b","b","a","a","a","a","b","b","b","b","a","a","a","a")
version=c(0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2)
color=c("C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2")
price=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32)
df = data.frame(product, skew, version, color, price)
# First plot all the data
p1 <- ggplot(df, aes(x=price, y=price, colour=factor(skew))) + geom_point(size=2, shape=19)
p1 <- p1 + facet_grid(version ~ color)
p1 # This gavea very good plot. So far so good
# Now plot P3 vs P1
p1 <- ggplot(df, aes(x=subset(price, product=='p1'), y=subset(price, product=='p3'), colour=factor(skew))) + geom_point(size=2, shape=19)
p1
# failed with: Error: Aesthetics must either be length one, or the same length as the dataProblems:subset(price, product == "p1"), subset(price, product == "p3")
これは私が期待している結果です。
解決方法は?
問題は
skew
がサブセット化されていない
colour=factor(skew)
ということで、間違った長さになっています。そのため
subset(skew, product == 'p1')
と同じです。
subset(skew, product == 'p3')
この場合、どちらのサブセットを使用するかは問題ではありません。ということで、問題を解決することができます。
p1 <- ggplot(df, aes(x=subset(price, product=='p1'),
y=subset(price, product=='p3'),
colour=factor(subset(skew, product == 'p1')))) +
geom_point(size=2, shape=19)
なお、ほとんどのRユーザは、こちらの方が簡潔であると書くだろう。
p1 <- ggplot(df, aes(x=price[product=='p1'],
y=price[product=='p3'],
colour=factor(skew[product == 'p1']))) +
geom_point(size=2, shape=19)
関連
-
[解決済み】R: 複数行の ggplot2 コマンドで「単項演算子エラー」が発生する。
-
[解決済み】library(ggplot2)でエラー:'ggplot2'というパッケージは存在しません。
-
[解決済み】rbind エラー。"名前が以前の名前と一致しない"
-
[解決済み】値を置き換えようとすると、"データフレームの添え字の割り当てで欠損値は許可されない"
-
[解決済み】エラー。Rの'break'の数が無効
-
[解決済み】Rエラー。"新しい列は既存の列の後に穴を空ける"
-
[解決済み】長いオブジェクトの長さは、短いオブジェクトの長さの倍数ではない?[重複]。
-
[解決済み】エラー - replacement has [x] rows, data has [y].
-
[解決済み] テスト
-
[解決済み】Rで相対的な頻度をプロットするためにhistをどのように使用しますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】R:関数に有限な'ylim'値が必要
-
[解決済み】ggplotの線幅を変更するには?
-
[解決済み】Rで立方根と対数変換をする
-
[解決済み】RでKNN。trainとclassは長さが違う」?
-
[解決済み】RでAIC中に行数が変化するのはなぜですか?そうならないようにするにはどうしたらいいですか?
-
[解決済み】二項演算子への非数値引数【非公開
-
[解決済み] [Solved] read.csv warning 'EOF within quoted string' prevents complete reading of file.
-
[解決済み] テスト
-
[解決済み】forループを実行すると「要因のレベルセットが異なる」というエラーが発生する
-
[解決済み】Rで相対的な頻度をプロットするためにhistをどのように使用しますか?