看来每当我使用包在 R 中创建图形时plotly,轴标题总是覆盖轴标签。我现在有两张发生这种情况的图表。plot_ly()我应该使用什么代码来使用和来增加轴标题和标签之间的间距ggplot()?如何确保图例在图 1 中可见并且不会被切断?
之前的 StackOverflow 问题提供了不同的代码结构方式,但它们似乎不适用于我的代码。
地块 1:
plot <- ggplot(dat, aes(x=HeightUnderCWD, y=GrassHeight))+ geom_point()+
labs(x = "Height under CWD (cm)", y = "Grass Height (cm)")+
theme(text=element_text(size=20, family="Arial"))+
stat_smooth(method = "lm",formula = y ~ x,se = FALSE, color='Darkgreen')+
stat_smooth(aes(x = HeightUnderCWD, y = 7, linetype = "Linear Fit"), method = "lm", formula = y ~ x, se = FALSE,size = 1,color='lightgreen')
ggplotly(plot)
情节2:
p<-plot_ly(y = GrassHeight+1, color = CWDPosition,type = "box",colors = "Set1")%>% …
我可以在地图上绘制圆形标记,如本例所示。但我想在 add_markers 中将标记形状从圆形更改为正方形,但我在帮助(add_markers)或在线示例中找不到解决方案。我尝试添加 type=list("squares") 但不幸的是它没有改变任何东西。
require(plotly)
df<- read.csv('https://raw.githubusercontent.com/plotly/datasets/master/2014_ebola.csv')
# restrict from June to September
df <- subset(df, Month %in% 6:9)
# ordered factor variable with month abbreviations
df$abbrev <- ordered(month.abb[df$Month], levels = month.abb[6:9])
# September totals
df9 <- subset(df, Month == 9)
p <- df %>%
plot_geo(
locationmode = 'country names', sizes = c(1, 600), color = I("black")
) %>%
add_markers(
y = ~Lat, x = ~Lon, locations = ~Country,
size = ~Value, color = ~abbrev, text = ~paste(Value, "cases") …Run Code Online (Sandbox Code Playgroud) 我正在 R 中使用plotly 创建 3D 散点图,我想减小所有点的标记大小。
library(plotly)
plot_ly(iris,x=~Petal.Width,y=~Sepal.Width,z=~Petal.Length) %>%
add_markers(color=~Species)
Run Code Online (Sandbox Code Playgroud)
我试图设定sizes论点,但这似乎并没有改变任何事情。
plot_ly(iris,x=~Petal.Width,y=~Sepal.Width,z=~Petal.Length) %>%
add_markers(color=~Species,sizes=0.02)
Run Code Online (Sandbox Code Playgroud)
还尝试了另一种说法sizeref。然而,什么也没发生。
plot_ly(iris,x=~Petal.Width,y=~Sepal.Width,z=~Petal.Length) %>%
add_markers(color=~Species,marker=list(sizeref=0.02))
Run Code Online (Sandbox Code Playgroud)
还有其他解决方案可以减小所有点的标记大小吗?或者我做错了什么?
我有一个数据集,其中包含每天的日期和通话量。当我使用plotly R 包绘制它们时,除了其中 1 个之外,所有日期都将每个日期分隔到不同的容器中。然而,这一棘手的数据子集而是将数据分组为 2 天的间隔,这并不是非常有用的信息。我确信这是一个简单的修复,但我不太确定如何更改垃圾箱宽度。
a <- as.Date(c("2019-02-01", "2019-01-14", "2019-01-15", "2019-01-24", "2019-01-31", "2019-01-22","2019-01-14", "2019-01-25", "2019-02-06","2019-01-17", "2019-01-10", "2019-02-06","2019-01-15", "2019-01-17", "2019-01-28","2019-02-04", "2019-01-18","2019-01-15","2019-01-18", "2019-01-25", "2019-01-17","2019-01-30", "2019-01-25", "2019-01-23","2019-01-28", "2019-01-28", "2019-02-06","2019-02-04", "2019-01-24", "2019-01-30","2019-02-01", "2019-01-24", "2019-01-18","2019-01-22", "2019-02-06", "2019-01-17","2019-01-11", "2019-02-06", "2019-01-16","2019-01-31", "2019-02-04", "2019-01-23","2019-01-29", "2019-01-25", "2019-01-22","2019-02-05", "2019-02-01", "2019-01-28","2019-01-22", "2019-01-24", "2019-02-01","2019-01-23", "2019-01-30", "2019-02-05","2019-02-06", "2019-01-24", "2019-02-06","2019-01-30", "2019-01-28", "2019-01-16","2019-01-10", "2019-02-04", "2019-02-07","2019-02-01", "2019-02-04", "2019-01-17","2019-01-17", "2019-02-05", "2019-01-30","2019-02-04", "2019-02-01", "2019-02-01","2019-01-24", "2019-01-23", "2019-02-04","2019-02-04", "2019-01-23", "2019-02-04","2019-01-18", "2019-01-22", "2019-01-24","2019-01-17", "2019-01-22", "2019-02-06","2019-01-10", "2019-01-14", "2019-01-09","2019-02-05", "2019-01-11", "2019-01-17","2019-01-23", "2019-01-23", "2019-02-05","2019-01-11", "2019-02-04", "2019-01-28","2019-01-24", "2019-01-22", "2019-01-24","2019-01-18", "2019-01-31", "2019-02-04","2019-01-22", "2019-01-14", "2019-01-11","2019-01-11", …Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用plot_lywith transforms(最终从下拉菜单中提取数据子集)和颜色映射。
以下是基于的可重现示例mtcars:
transforms没有颜色映射如果我排除颜色映射,一切都会按预期工作:
library(plotly)
library(tidyverse)
plot_ly(
data = mtcars %>% rownames_to_column("id"),
x = ~mpg, y = ~disp, text = ~id,
type = "scatter", mode = "markers+text",
marker = list(size = 10, opacity = 0.8),
transforms = list(
list(
type = "filter",
target = ~cyl,
operation = "=",
value = sort(unique(mtcars$cyl))[1])))
Run Code Online (Sandbox Code Playgroud)
数据会被过滤以mtcars$cyl匹配 的值sort(unique(mtcars$cyl))[1] = 4。到目前为止,一切都很好。
transforms带有颜色映射我现在喜欢根据化油器的数量对标记进行颜色编码mtcars$carb;如果我添加颜色映射,我最终会得到
library(plotly)
library(tidyverse)
plot_ly(
data = …Run Code Online (Sandbox Code Playgroud) 我有一个绘图,我想使用 R Plumber 在其他 UI(例如角度)上显示绘图。
TLDR:我想用三个字母缩写而不是每个月的数字来标记框架滑块。
我创建了一个条形图,显示 40 年来每个月的平均积雪深度。我从 NOAA 提取数据,然后使用 lubridate 按年份和月份进行分组。这是代码:
snow_depth <- govy_data$snwd %>%
replace_na(list(snwd = 0)) %>%
mutate(month_char = month(date, label = TRUE, abbr = TRUE)) %>%
group_by(year = year(date), month = month(date), month_char) %>%
summarise(avg_depth = mean(snwd))
Run Code Online (Sandbox Code Playgroud)
mutate 函数在数据框中创建一个列 (month_char),其中包含每个月份的三个字母缩写。此列的类是有序因子。
下面的代码显示了我如何创建图表/动画:
snow_plot <- snow_depth %>% plot_ly(
x = ~year,
y = ~avg_depth,
color = ~avg_temp,
frame = ~month,
text = ~paste('<i>Month</i>: ', month_char,
'<br><b>Avg. Depth</b>: ', avg_depth,
'<br><b>Avg. Temp</b>: ', avg_temp),
hoverinfo = 'text',
type = 'bar'
)
snow_plot
Run Code Online (Sandbox Code Playgroud)
此代码生成一个动画效果良好的绘图,如下所示: …
我有一个客户希望能够在 Rshiny 中“徒手”绘制绘图 (ggplot) 图表。我说在绘图上使用套索选择按钮,但他们不高兴的是,如果您单击图表上的其他位置,它会删除第一个套索。
通过这篇文章,我能够制作一个可以绘制的 ggplot。然而,我无法让它与情节一起工作,因为我不知道下面用户界面中的悬停选项的等效项。我希望得到一些关于如何用绘图来做到这一点,如何改进代码以使其更快,和/或如何不让它从 (1,1) 的任意值开始的输入。
可以理解的是,只有当数据完全是数字时,这才有效。如果说数据中的第一列是 c("a","b","c") 而不是像下面那样的 c(1,2,3) ,是否有办法做到这一点。
注意:第一次单击该线从 (1,1) 开始,因为 ggplot 需要一个值来绘制图表,但反应性输入需要一个图表。为了绕过这个循环,我只是将列放在 c(1,vals$x)...希望这是有道理的。
library(shiny)
library(tidyverse)
ui <- fluidPage(
actionButton("reset", "reset"),
plotOutput("plot",
hover=hoverOpts(id = "hover", delay = 300, delayType = "throttle", clip = TRUE, nullOutside = TRUE),
click="click"))
server <- function(input, output, session) {
vals = reactiveValues(x=NULL, y=NULL)
draw = reactiveVal(FALSE)
observeEvent(input$click, handlerExpr = {
temp <- draw(); draw(!temp)
if(!draw()) {
vals$x <- c(vals$x, NA)
vals$y <- c(vals$y, NA)
}})
observeEvent(input$reset, handlerExpr …Run Code Online (Sandbox Code Playgroud) 我有data.frame以下内容:
dp <- structure(list(`Demand Per Section` = c(125, 350, 100, 538, 75,
25, 138, 138, 75, 150, 37, 225, 35, 40, 125, 25, 25, 125, 50,
250, 88, 325, 4, 50, 6, 5, 500, 500, 3, 146, 5, 34, 15, 51, 2,
32, 48, 18, 5, 6, 44, 16, 46, 12, 100, 750, 15, 500, 30, 333),
`Element Name` = c("Nitric acid (concentrated)", "Sulphuric acid(concentrated)",
"2-hydroxybenzoic acid", "Acetic anhydride", "2-Naphthol",
"Sodium Hydroxide", "Phenyl hydrazine hydrochloride", "Glucose",
"Sodium acetate", …Run Code Online (Sandbox Code Playgroud) 我正在尝试绘制带有填充和 NA 值的线图。Plotly 自动用 NA 值填充我希望其为空的部分。获得正确图表的最佳方法是什么?
不能将 NA 值设置为 0。我也在使用胡佛,并且不希望将鼠标悬停在线上时得到 0 的结果。
R 数据+代码示例:
library(plotly)
set.seed(1)
A = data.frame(x = 1900:2000, value=cumsum(rnorm(101)))
A[40:70, 2:3] = NA
fig <- plot_ly(x = A$x, y = A$value, type = 'scatter', mode = 'lines', fill = 'tozeroy')
fig
Run Code Online (Sandbox Code Playgroud)