[解決済み] Rで3Dデータをプロットする
2022-03-05 01:42:33
質問
3Dデータセットがあります。
data = data.frame(
x = rep( c(0.1, 0.2, 0.3, 0.4, 0.5), each=5),
y = rep( c(1, 2, 3, 4, 5), 5)
)
data$z = runif(
25,
min = (data$x*data$y - 0.1 * (data$x*data$y)),
max = (data$x*data$y + 0.1 * (data$x*data$y))
)
data
str(data)
そして、それをプロットしたいのですが、Rの組み込み関数では、いつもエラーが出ます。
x' と 'y' の値が増加することが予想されます。
# ### 3D Plots ######################################################
# built-in function always give the error
# "increasing 'x' and 'y' values expected"
demo(image)
image(x = data$x, y = data$y, z = data$z)
demo(persp)
persp(data$x,data$y,data$z)
contour(data$x,data$y,data$z)
インターネットで検索したところ、このメッセージはXとYの値の組み合わせが一意でない場合に発生することがわかりました。しかし、ここでは一意である。
他のライブラリも試してみましたが、そこでは問題なく動作しています。しかし、私はプロットのデフォルトのスタイルが好きではありません(ビルトイン関数は私の期待に応えるべきです)。
# ### 3D Scatterplot ######################################################
# Nice plots without surface maps?
install.packages("scatterplot3d", dependencies = TRUE)
library(scatterplot3d)
scatterplot3d(x = data$x, y = data$y, z = data$z)
# ### 3D Scatterplot ######################################################
# Only to play around?
install.packages("rgl", dependencies = TRUE)
library(rgl)
plot3d(x = data$x, y = data$y, z = data$z)
lines3d(x = data$x, y = data$y, z = data$z)
surface3d(x = data$x, y = data$y, z = data$z)
なぜ私のデータセットは組み込み関数に受け入れられないのですか?
解決方法を教えてください。
グリッド間隔とシーケンスが増加または一意であることが保証できない "real"データを扱っている場合(うまくいけば
(x,y,z)
の組み合わせは、たとえこれらのトリプルが重複していたとしても、少なくとも一意であることをお勧めします。
akima
パッケージは、不規則なグリッドから規則的なグリッドに補間するために使用されます。
の定義を使って
data
:
library(akima)
im <- with(data,interp(x,y,z))
with(im,image(x,y,z))
<イグ
また、これは
image
が、似たような関数もあります。
によってデータがマッピングされるデフォルトのグリッドに注意してください。
akima::interp
の範囲にまたがる40個の等間隔で定義される。
x
と
y
の値を指定します。
> formals(akima::interp)[c("xo","yo")]
$xo
seq(min(x), max(x), length = 40)
$yo
seq(min(y), max(y), length = 40)
しかし、もちろん、これは引数を渡すことで上書きすることができます。
xo
と
yo
から
akima::interp
.
関連
-
[解決済み】エラー。Rの'break'の数が無効
-
[解決済み】Rはプロットするが、アブラインを描画しない
-
[解決済み] matplotlib でプロットをクリアするために cla()、clf() または close() をいつ使うか?
-
[解決済み] Matplotlibでプロットを表示するのではなく、画像ファイルに保存する。
-
[解決済み] データフレームを結合(マージ)する方法(内側、外側、左側、右側)
-
[解決済み] データフレームの行を複数の列でソート(並び替え)する。
-
[解決済み] データフレーム列の名前によるドロップ
-
[解決済み] Rで2つのグラフを同じプロットで表示する
-
[解決済み] matplotlib のプロットで xticks を除去しますか?
-
[解決済み】Rで2つのヒストグラムを一緒にプロットする方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 変数の型(リスト)が無効です
-
[解決済み】ggplotの線幅を変更するには?
-
[解決済み】LMEモデルのレベル0、ブロック1でのバックソルブにおける特異性
-
[解決済み】エラー。Rの'break'の数が無効
-
[解決済み】Rのメモリ管理/サイズn Mbのベクトルを割り当てられない
-
[解決済み】 boxplotに色を追加する - "離散的なスケールに連続的な値が供給される "エラー
-
[解決済み】 file(filename, "r", encoding = encoding) : cannot open the connectionでエラーが発生する。
-
[解決済み】長いオブジェクトの長さは、短いオブジェクトの長さの倍数ではない?[重複]。
-
[解決済み】Rで文字ベクトルから引用符を削除する
-
[解決済み】R 置換する項目数が置換長の倍数でない/しかし結果は正しい