質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

1回答

313閲覧

3つの変数の関係が、グラフが表示されない(枠外にも外れるし)

pontoon

総合スコア28

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2022/12/30 04:49

前提

plot3Dでグラフが表示されない

実現したいこと

3つの変数の関係(fとrとp)を3次元グラフで表示させたい

発生している問題・エラーメッセージ

エラーメッセージ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-12-30/11c15619-699b-471d-ba2e-92060ae1aeb5.jpeg) エラーは無いですが、各点のドットもなく、横にはみ出たような、添付なグラフ表示で。

該当のソースコード

library(rgl) # Sound Pressure of Ultrasound from the cylindrical small diaphragm r <- c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) f <- c(1,2,3,4,5,6,7) p <- matrix(c(1:105),nrow=15,ncol=7) a = 0.001 k = 4187 gamma = 3.1415/6 z<- k*a*sin(gamma) J1 = 0 # for (m in 1:100) for (m in 1:100) { fact = 1 for (n in 1:m) fact= fact*n G = 1 for (n in 1:(m+1)) G = G*n Q = (((-1)^m)/(fact*G))*((z/2)^(2*m+1)) cat("m & fact & G & z & Q & J1 = ",m,fact,G,z,Q,J1,"\n") J1 = J1 + Q } Vm = 12 for (h in 1:15) { for (i in 1:7) { l = r[h]*0.01 omega = 2*3.1415*10^f[i] p[h,i] = (((a^2)*Vm*omega*l)/l)*abs(J1/z) } } plot3d(p,r,f)

試したこと

plot3dの中のpとrとfの順番を入れ替えたりもしましたが、変わらず

補足情報(FW/ツールのバージョンなど)

RStudioです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2022/12/30 05:14

何だかよく分かりませんが、 r <- c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) としているので、以下のループで l が 0 になり、結果、p が全て NaN になっています。 for (h in 1:15) {  for (i in 1:7)  {   l = r[h]*0.01   omega = 2*3.1415*10^f[i]   p[h,i] = (((a^2)*Vm*omega*l)/l)*abs(J1/z)  } }
pontoon

2022/12/30 08:22

コメントありがとうございます。 チェックしてみます。
guest

回答1

0

library(rgl) # Sound Pressure of Ultrasound from the cylindrical small diaphragm r <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) f <- c(1,2,3,4,5,6,7) p <- matrix(c(1:105),nrow=15,ncol=7) dB <- matrix(c(1:105),nrow=15,ncol=7) a = 0.001 k = 4187 gamma = 3.1415/6 z<- k*a*sin(gamma) J1 = 0 for (m in 1:100) { fact = 1 for (n in 1:m) fact= fact*n G = 1 for (n in 1:(m+1)) G = G*n Q = (((-1)^m)/(fact*G))*((z/2)^(2*m+1)) cat("m & fact & G & z & Q & J1 = ",m,fact,G,z,Q,J1,"\n") J1 = J1 + Q } Vm = 12 for (h in 1:15) { for (i in 1:7) { rou = 1.04 l = r[h]*0.01 omega = 2*3.1415*10^f[i] p[h,i] = (((a^2)*Vm*omega*rou)/l)*abs(J1/z) dB[h,i] = log10(p[h,i]/0.001) cat("**** p h i r[h] l f[i] = ",p[h,i],h,i,r[h],l,f[i],"\n") cat("\n") } } print("*** J1 =") print(J1) print("*** p =") print(p) print("*** dB =") print(dB) plot3d(p,r,f)

と、プログラムを変えたら、少なくとも、添付のような、まともらしいものが
表示され出しましたが、これは、3次元を俯瞰する角度は変えられないのでしょうか?
(上側からでなく、もう少し、横方向から見たい)

それと、
plot(dat$r,dat$dB,xlim=c(0,15),yliイメージ説明m=c(0,10),col="green")
と、2次元表示でもやってみたのですが、この時は何も表示されません。
何故だろう。イメージ説明

投稿2022/12/31 00:19

pontoon

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KojiDoi

2022/12/31 09:49

> 3次元を俯瞰する角度は変えられないのでしょうか? マウスは使えないんですか?
pontoon

2023/01/01 02:05

KojiDoiさん。 あっ。 本当だ。 一旦、表示されておいて、 マウスでドラッグさせる事によって、 見る位置が変わりました。 ありがとうございます。 一旦、表示させれば、俯瞰の位置は固定で、 それを変えようと思えば、プログラム内を いじらないのかと思っていました。 何卒、今年もよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問