これは数学の問題のほうが多いようですプログラミングよりも。どのシェイプがトレースされるかを最初に判断します(シェーディングが可能な領域が座標で定義されている場合もありますが、この場合はシェイプできます)。それらを描画するにはgeom_polygon
半径0.5で(0、0)を中心とする円を描き、それを記入したいと思うように見えます(あなたの方程式はこの円を記述するreal^2 + imaginary^2 = a^2
です)。a
が0から0.5になるということは、どのくらいの円をトレースするかを定義しますが、2 * piを打つと、あなたは完全な円になりますので、それを越えても違いはありません)。
この円の(x、y)座標を設定するだけです。
b <- seq(0, 2*pi, by=0.1) # sin/cos are periodic, no point going past 2*pi
circ <- data.frame(x=0.5*cos(b), y=0.5*sin(b))
オリジナルプロット:
dat=data.frame(x=c(0,0.5,0.7),y=c(0.7,0.5,0.5))
p = ggplot(dat,aes(x,y))+geom_point(size=7)+xlim(0,1)+ylim(0,1)+xlab("real")+ylab("imaginary")
ので、あなたが必要とするすべてはあなたがそうで色などを変更することができます
p + geom_polygon(dat=circ)
です。今度は、このグラフでサークルが奇妙に見えることに気づくでしょう。サークルがこれ以上の範囲をカバーしている間、xとyの制限は0から1に制限されているからです。 xlim
とylim
を使用した場合、ggplotはビューウィンドウを単純に切り捨てるのではなく、データを切り捨てる(つまり、ポリゴンが奇妙に見えるように切り捨てる)。これを修正するには、xlim
とylim
ではなく、coord_cartesian
を使用して軸を制限してください。
ggplot(dat, aes(x, y)) + geom_point(size=7) +
coord_cartesian(xlim=c(0, 1), ylim=c(0, 1)) +
geom_polygon(dat=circ)
あなたは「範囲を、次のような機能を含む、プロット上の斜線を追加する」とはどういう意味ですか?リストされた2つの線をプロットし、x軸と線の間の領域を陰にしたいとしますか?例えばa = 0.5についてはa * sin(b)をプロットし、a = 0(x軸)とa = 0.5の間に陰をつけますか?しかし、 'real = a * cos(b)'はどうでしょうか?あなたのx軸は本当ですか?明確にできますか? –
ああ、実際の座標と虚数座標(つまりxとy)で定義された領域をトレースしたいのですか?それを埋める? –
@ mathematical.coffeeはい正確に。混乱させて申し訳ありません。 – Mohammad