[英]R plotly line chart
我有一個包含三個變量的數據集,即性別、年齡和 BMI,這是數據樣本:
我正在嘗試使用 plotly package 在 r 中繪制 plot 折線圖,其中 X 軸顯示 BMI 值,Y 軸顯示年齡和性別 plot 兩條線作為對應於 BMI 和年齡的值。 我正在嘗試這些代碼,但無法獲得正確的 output。
這是我的代碼:
library(plotly)
data<-read.csv("abc1.csv")
p <- plot_ly(data, x = ~BMI, y = ~Age, type = 'scatter', mode = 'lines',
linetype = ~Gender,line = list(color = 'rgb(205, 12, 24)', width = 4)) %>%
layout(title = "Line chart",
xaxis = list(title = "Age"),
yaxis = list (title = "BMI"))
p
這是我的控制台 output:
希望您正在尋找最合適的折線圖
#sample data
df <- data.frame(Age=c(75.6, 81.9, 81.9,83.2,84.6,84.9,88,89.1),
Gender=c('M','F','F','M','M','F','M','M'),
BMI=c(16.2,17.3,14.9,19.6,15.5,14.7,15,14.8))
gender <- levels(df$Gender)
col <- c('red','green','blue')
library(plotly)
p <- plot_ly()
for (i in 1:length(gender)) {
p <- p %>%
add_lines(data = df[df$Gender==gender[i],],
x = ~BMI,
y = fitted(lm(data = df[df$Gender==gender[i],], Age ~ BMI)),
line = list(color = col[i]),
name = gender[i]) %>%
add_markers(data = df[df$Gender==gender[i],],
x = ~BMI,
y = ~Age,
symbol = ~Gender,
marker=list(color = col[i]))
}
p %>%
layout(xaxis = list(title = "BMI"), yaxis = list(title = "Age"), title="BMI-Age Line Chart")
首先,我嘗試在下面重新創建您的數據:
Gender <- c("M",
"F",
"F",
"M",
"M",
"F",
"M",
"M",
"M",
"F",
"F",
"M",
"M")
Age <- c(75.6,
81.9,
81.9,
83.2,
84.6,
84.9,
88,
89.1,
90.1,
90.4,
92.9,
93,
93.4)
BMI <- c(16.2,
17.3,
14.9,
19.6,
15.5,
14.7,
15,
14.8,
19.2,
16.4,
16.1,
15.7,
25.2)
df <- data.frame(Gender,
Age,
BMI)
df
這給了我們這個:
Gender Age BMI
1 M 75.6 16.2
2 F 81.9 17.3
3 F 81.9 14.9
4 M 83.2 19.6
5 M 84.6 15.5
6 F 84.9 14.7
7 M 88.0 15.0
8 M 89.1 14.8
9 M 90.1 19.2
10 F 90.4 16.4
11 F 92.9 16.1
12 M 93.0 15.7
13 M 93.4 25.2
這里可能有問題的是您對數據進行分面的方式。 我已經像這樣編輯了您的代碼:
library(plotly)
p <- plot_ly(df,
x = ~Age,
y = ~BMI,
type = 'scatter',
mode = 'lines',
color = ~Gender) %>%
layout(title = "Line chart",
xaxis = list(title = "Age"),
yaxis = list (title = "BMI"))
p
此處數據正確的方面:
如果您對按性別添加線條類型一無所知,您也可以對線條類型做同樣的事情:
p <- plot_ly(df,
x = ~Age,
y = ~BMI,
type = 'scatter',
mode = 'lines',
color = ~Gender,
linetype = ~Gender) %>%
layout(title = "Line chart",
xaxis = list(title = "Age"),
yaxis = list (title = "BMI"))
這使得:
一種方法是將 ggpubr 或 ggplot 線圖移植到ggplotly
function 中,它與 function 服務相同。我為 colors 使用了我自己的調色板,但你可以使用 RGB 代碼使用任何你想要的顏色 select:
library(ggpubr)
line <- ggline(df,
x="Age",
y="BMI",
color = "Gender",
palette = c("#00AFBB", "#E7B800"),
title = "Line Graph")
ggplotly(line)
這使得這個 plotly 折線圖:
同樣,從您的代碼中不確定您要做什么,但您也可以使用此方法制作一條紅色和虛線的類型線:
line <- ggline(df,
x="Age",
y="BMI",
linetype = "Gender",
color = "red",
title = "Line Graph")
ggplotly(line)
這使得:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.