R geom_面积和坐标极坐标到plotly的转换
我正在尝试将ggplot极坐标图转换为plotly极坐标图。我在plotly中丢失了R geom_面积和坐标极坐标到plotly的转换,r,ggplot2,plotly,geom-area,R,Ggplot2,Plotly,Geom Area,我正在尝试将ggplot极坐标图转换为plotly极坐标图。我在plotly中丢失了geom_面积的累积值,以及每个轨迹的填充颜色,而这两个轨迹都没有到达原点。目标是尽可能靠近ggplot视图 df <- data.frame(angle = rep(seq(0, 360, 45), 4), frequency = rep(1:9, 4), z = as.character(c(rep(1, 9), rep(2, 9)))) df <- aggregate(frequency ~ a
geom_面积的累积值
,以及每个轨迹的填充颜色,而这两个轨迹都没有到达原点。目标是尽可能靠近ggplot视图
df <- data.frame(angle = rep(seq(0, 360, 45), 4), frequency = rep(1:9, 4), z = as.character(c(rep(1, 9), rep(2, 9))))
df <- aggregate(frequency ~ angle + z, data = df, sum)
pl <- ggplot(df,aes(x=angle,y=frequency,fill=z)) + geom_area() + coord_polar() + scale_x_continuous(breaks=angle, labels=c("N", "NE", "E", "SE", "S", "SO", "O", "NO", "N"))
pl
df以下是解决问题的起点:
k <- 100
df <- data.frame(angle = rep(seq(0, 360, length.out=k), 4),
frequency = rep(1:k, 4),
z = as.character(c(rep(1, k), rep(2, k))))
df <- aggregate(frequency ~ angle + z, data = df, sum)
df$frequency[df$z==2] <- df$frequency[df$z==2]/2
p <- plot_ly(data=df, type = 'scatterpolar', mode = "lines") %>%
add_trace(theta=~angle,r=~frequency,fill="toself", color=~z)
p <- p %>% layout(
polar = list(radialaxis = list(angle = 90),
angularaxis = list(
rotation = 90,
direction = 'clockwise',
ticktext = c("N", "NE", "E", "SE", "S", "SO", "O", "NO", "N"),
tickvals = seq(0, 360, 45)
)
)
)
p
k非常感谢您抽出时间。事实上,图的平滑丢失了,你通过修改初始数据帧得到了它,这是我做不到的
k <- 100
df <- data.frame(angle = rep(seq(0, 360, length.out=k), 4),
frequency = rep(1:k, 4),
z = as.character(c(rep(1, k), rep(2, k))))
df <- aggregate(frequency ~ angle + z, data = df, sum)
df$frequency[df$z==2] <- df$frequency[df$z==2]/2
p <- plot_ly(data=df, type = 'scatterpolar', mode = "lines") %>%
add_trace(theta=~angle,r=~frequency,fill="toself", color=~z)
p <- p %>% layout(
polar = list(radialaxis = list(angle = 90),
angularaxis = list(
rotation = 90,
direction = 'clockwise',
ticktext = c("N", "NE", "E", "SE", "S", "SO", "O", "NO", "N"),
tickvals = seq(0, 360, 45)
)
)
)
p