R の Lines()関数を使用してプロットに線を追加する
胡金庫
2023年1月30日
この記事では、R の lines()
関数を使用してプロットに線を追加する方法を紹介します。
lines()
関数を使用して、R のプロットに線を追加する
lines()
関数は R graphics
パッケージの一部であり、プロットに線を追加するために使用されます。最初に、plot
関数を呼び出して、最初の 2つの引数で指定された変数のマッピングがあるプロットを作成する必要があります。y 軸座標を示す 2 番目の引数はオプションであることに注意してください。プロットが描画されたら、lines()
関数を呼び出し、必要に応じて座標ベクトルを渡して、プロットに線を追加できます。lines()
関数が機能するために折れ線グラフを描画するために、plot
関数は必要ありません。
library(stats)
library(babynames)
library(dplyr)
plot(cars$speed, cars$dist, type = "l", col = "red",
main = "Title of the Plot",
xlab = "Speed (mph)",
ylab = "Stopping Distance (Feet)")
lines(cars$speed, cars$dist/4 , col = "green")
legend("topleft", c("line 1", "line 2"),
lty = c(1,1),
col = c("red", "green"))
point
を使用して、R のプロットにポイントを追加する
lines()
関数と同様に、graphics
パッケージは、プロットにポイントを描画するための points()
関数を提供します。次の例は、2つの線と点のマッピングが同じプロットで作成されるシナリオを示しています。ただし、元の折れ線グラフは plot
関数で描画されていることに注意してください。
library(stats)
library(babynames)
library(dplyr)
plot(cars$speed, cars$dist, type = "l", col = "red",
main = "Title of the Plot",
xlab = "Speed (mph)",
ylab = "Stopping Distance (Feet)")
points(cars$speed, cars$dist, col = "blue" )
lines(cars$speed, cars$dist/4 , col = "green")
points(cars$speed, cars$dist/4 , col = "black")
legend("topleft", c("line 1", "line 2"),
lty = c(1,1),
col = c("red", "green"))
plot
と lines
関数の呼び出し順序はプロットのスケールに影響する
最初の関数呼び出しでマッピングされたデータのスケールが、次のマッピングには不十分な場合があります。次のコードスニペットは、線の 1つがプロットの範囲外にあることを示しています。
library(stats)
library(babynames)
library(dplyr)
dat <- babynames %>%
filter(name %in% c("Alice")) %>% filter(sex=="F")
dat2 <- babynames %>%
filter(name %in% c("Mary")) %>% filter(sex=="F")
plot(dat$year, dat$n, type = "l", col = "blue",
main = "Women born with different names",
xlab = "Year",
ylab = "Number of babies born")
lines(dat2$year, dat2$n, col = "red")
次の例に示すように、前の問題は行を手動で並べ替えることで解決できることに注意してください。ただし、より複雑なスクリプトでは、条件ステートメントを作成し、y 軸データの最大値を動的にチェックする必要がある場合があります。
library(stats)
library(babynames)
library(dplyr)
dat <- babynames %>%
filter(name %in% c("Alice")) %>% filter(sex=="F")
dat2 <- babynames %>%
filter(name %in% c("Mary")) %>% filter(sex=="F")
dat3 <- babynames %>%
filter(name %in% c("Mae")) %>% filter(sex=="F")
plot(dat2$year, dat2$n, type = "l", col = "blue",
main = "Women born with different names",
xlab = "Year",
ylab = "Number of babies born")
lines(dat$year, dat$n, col = "red")
lines(dat3$year, dat3$n, col = "orange")
legend("topright", c("Mary", "Alice", "Mae"),
lty = c(1,1,1),
col = c("blue", "red", "orange"))
著者: 胡金庫