标签: ggplotly

使用ggplotly时如何选择变量显示在工具提示中?

我有一个简单的数据框:

seq <- 1:10
name <- c(paste0("company",1:10))
value <- c(250,125,50,40,40,30,20,20,10,10)
d <- data.frame(seq,name,value)
Run Code Online (Sandbox Code Playgroud)

我想以这种方式绘制它:

require(ggplot2)
ggplot(data = d,aes(x=seq,y=value))+geom_line() + geom_point()
Run Code Online (Sandbox Code Playgroud)

现在我想使用情节,主要是为了能够,当鼠标悬停在某一点上时,获取除价值之外的其他信息,例如公司名称.我试试这个:

require(plotly)
ggplotly()
Run Code Online (Sandbox Code Playgroud)

这给我一个工具提示,但只有seq和值.我尝试了选项tooltip =但它指定你可以使用美学中唯一的变量描述,我不会在我的使用中使用该名称.

有解决方案吗 我看到我不是第一个遇到这个问题的人,但我还没有找到与ggplotly合作的答案.

r ggplot2 plotly ggplotly r-plotly

29
推荐指数
4
解决办法
2万
查看次数

突出显示悬停时组中的所有值

假设数据

library(ggplot2)
library(plotly)

set.seed(357)
xy <- data.frame(letters = rep(c("a", "b", "c"), times = 3),
                 values = runif(9),
                 groups = rep(c("group1", "group2", "group3"), each = 3))

  letters    values groups
1       a 0.9913409 group1
2       b 0.6245529 group1
3       c 0.5245744 group1
4       a 0.4601817 group2
5       b 0.2254525 group2
6       c 0.5898001 group2
7       a 0.1716801 group3
8       b 0.3195294 group3
9       c 0.8953055 group3

ggplotly(
  ggplot(xy, aes(x = letters, y = values, group = groups)) +
  theme_bw() +
  geom_point()
) …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 plotly ggplotly

25
推荐指数
1
解决办法
551
查看次数

ggplot和ggplotly之间的图例位置差异?

我发现了 ggplot 和 ggplotly 中同一个图表之间有趣而奇怪的区别

income_gap_chart <- ggplot(income_gap, aes(x = Country, y = Percent, fill = Income)) + 
geom_bar(position = "dodge", stat = "identity") +
scale_fill_brewer(palette = "Set1") +
coord_flip() +
theme(axis.title.y = element_blank()) +
scale_y_continuous(limits = c(0, 100)) +
theme_tufte() +
theme(axis.title.y = element_blank()) +
theme(legend.position = "bottom")
Run Code Online (Sandbox Code Playgroud)

对于 ggplot 它看起来很完美,底部有一个图例标题

在此处输入图片说明

但是当我用 ggplotly() 包装它时,图例开始表现不同

在此处输入图片说明

我的问题 - 我想要 ggplotly 格式的第一个图表,但无法解决这个问题,底部的图例不起作用。想法?

谢谢!

r legend ggplot2 ggplotly

12
推荐指数
1
解决办法
3840
查看次数

ggplot geom_tile 在 ggplotly 中扭曲

我正在尝试将geom_tile使用 构建的图转换ggplotggplotly. 然而,瓷砖在情节上是扭曲的。同样的问题也发生在geom_raster.

展示:

library(ggplot2)
library(plotly)
set.seed(1)
n <- 10
X <- data.frame(xcoord = sample(1:10, n, replace = TRUE),
                ycoord = sample(1:10, n, replace = TRUE),
                value = runif(n))
gg <- ggplot(X) + geom_tile(aes(x = xcoord, y = ycoord, fill = value))
ggplotly(gg)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2 ggplotly

10
推荐指数
1
解决办法
574
查看次数

Python ggplot 和 ggplotly

前 R 用户,我曾经通过 ggplotly() 函数广泛地结合 ggplot 和 plot_ly 库来显示数据。

刚到 Python 时,我看到 ggplot 库可用,但在与 plotly 的简单组合中找不到任何用于图形反应显示的内容。

我会寻找的是这样的:

from ggplot import*
import numpy as np
import pandas as pd

a = pd.DataFrame({'grid': np.arange(-4, 4),
                 'test_data': np.random.random_integers(0, 10,8)})
p2 = ggplot(a, aes(x = 'grid', y = 'test_data'))+geom_line()
p2
ggplotly(p2)
Run Code Online (Sandbox Code Playgroud)

最后一行将启动一个经典的情节动态查看器,其中包含鼠标图形交互、曲线选择等所有强大的功能......

谢谢你的帮助 :),

纪尧姆

python ggplot2 plotly ggplotly

8
推荐指数
1
解决办法
1110
查看次数

ggplot2 + plotly:轴标题消失

我一直在使用的时候有一个问题,ggplotly()一个ggplot图:y轴消失.这是一个使用iris数据集的可重现的例子(这个例子非常简单,但无论如何)

data(iris)
g = ggplot(data = iris, aes(x = Petal.Length, y = Petal.Width, fill = Species)) + 
  geom_bar(stat = "identity", position = "dodge") + 
  scale_fill_manual(name = "legend", values = c("blue", "red", "green")) +
  ylab("Y title") +
  ylim(c(0,3)) +
  xlab("X title") +
  ggtitle("Main title")
g
ggplotly(g)
Run Code Online (Sandbox Code Playgroud)

如您所见,Y轴标题消失了.

好吧,如果ylim删除它可行,但我想指定y限制.

我试着做以下事情:

data(iris)
g = ggplot(data = iris, aes(x = Petal.Length, y = Petal.Width, fill = Species)) + 
  geom_bar(stat = "identity", position = "dodge") + 
  scale_fill_manual(name …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 plotly ggplotly r-plotly

7
推荐指数
1
解决办法
2153
查看次数

将绘图导出到 R 中的 powerpoint

是否可以将plotly/ggplotly图导出到Powerpoint并保持其交互性?我的意思是,例如允许用户更改绘图线的颜色、粗细等。

示例代码:

set.seed(100)
d <- diamonds[sample(nrow(diamonds), 1000), ]
p <- ggplot(data = d, aes(x = carat, y = price)) + 
  geom_point(aes(text = paste("Clarity:", clarity))) +
  geom_smooth(aes(colour = cut, fill = cut)) + facet_wrap(~ cut)
gg <- ggplotly(p)
Run Code Online (Sandbox Code Playgroud)

顺便说一句,使用webshot包将绘图导出为.png文件不是解决方案。我应该能够编写这个解决方案,并从 R 或任何其他编程语言自动化 - 在线工具或任何其他应用程序,用户应该单击它来获取结果,但不能解决问题。

plot powerpoint r plotly ggplotly

7
推荐指数
0
解决办法
2225
查看次数

R中ggplotly中图例的奇怪格式

我正在尝试将 ggplot 变成情节。ggplot 渲染得很好,但是当我通过 ggplotly 将其放入时,图例突然在标签后添加了括号和“,1”。

这是一个示例假数据:

sorted1<-data.frame(CommDate=c(as.Date("2017-09-12"), as.Date("2017-10-15")), CommName=c("Foo", "Bar"), PubB4=c(2,3))
Run Code Online (Sandbox Code Playgroud)

这是我试图在其上运行的代码:

ggplotly(ggplot(sorted1, aes(x=as.Date(CommDate), y=PubB4))+
           geom_smooth(level=0.0, aes(colour="Moving average"), se=FALSE)+
           geom_point(aes(fill=CommName), size=4)+
           expand_limits(y=c(0,4.5))+
           geom_line(mapping=aes(y=4),colour="orangered3",size=1)+
           geom_text(mapping=aes(y=4.2, x=min(sorted1$CommDate)+4), label="Target", size=3)+
           xlab("Committee Date")+
           guides(fill=guide_legend(title="Committee Names"), colour=guide_legend(title.theme=element_blank(),title=NULL))+
           scale_x_date(labels = date_format("%b-%y"))+
           theme_light()+
           theme(plot.title=element_text(hjust=0.5, size=12),panel.grid.major.x = (element_blank()), 
                 panel.grid.minor.x = (element_blank()), 
                 axis.title = element_text(size=8), legend.title = element_text(size=10),
                 legend.text = element_text(size=8), legend.box = 'vertical', legend.spacing.y = unit(-2,"mm"))+
           scale_colour_manual(name="",values="#0072B2"))
Run Code Online (Sandbox Code Playgroud)

geom_smooth此处不呈现,但会处理完整数据。)

这是我从中得到的:

ggplotly 结果与错误格式的图例

为什么图例显示为“(foo,1)”?

我尝试删除geom_smooth实际上解决了问题的 ,但我需要它 - 我如何保留它但修复图例?

谢谢!

更新:好的,我开始注释掉一些东西,看看会发生什么。如果我aes()从 中删除geom_smooth,也可以解决问题,只要我保持scale_colour_manual …

r ggplot2 plotly ggplotly

7
推荐指数
1
解决办法
4266
查看次数

绘制时间序列热图时提高 ggplotly 的性能

我正在使用 Plotly 和 Shiny在 R 中构建一个交互式时间序列热图。作为此过程的一部分,我将热图值从连续格式重新编码为有序格式 - 所以我有一个热图,其中六种颜色代表特定的计数类别,而这些类别是根据聚合计数值创建的。但是,这会导致使用ggplotly(). 我已经将它追溯到tooltip()Plotly 中呈现交互框的函数。即使我只是向tooltip(). 我正在使用来自约翰霍普金斯 CSSE 存储库. 这是一个简化的热图代码,它也使用辛普森一家的颜色主题ggsci

#Load packages
library(shiny)
library(plotly)
library(tidyverse)
library(RCurl)
library(ggsci)

#Read example data from Gist
confirmed <- read_csv("https://gist.githubusercontent.com/GeekOnAcid/5638e37c688c257b1c381a15e3fb531a/raw/80ba9704417c61298ca6919343505725b8b162a5/covid_selected_europe_subset.csv")

#Wrap ggplot of time-series heatmap in ggplotly, call "tooltip"  
ggplot_ts_heatmap <- confirmed %>%
  ggplot(aes(as.factor(date), reorder(`Country/Region`,`cases count`), 
             fill=cnt.cat, label = `cases count`, label2 = as.factor(date), 
             text = paste("country:", `Country/Region`))) + 
  geom_tile(col=1) +
  theme_bw(base_line_size = 0, base_rect_size = …
Run Code Online (Sandbox Code Playgroud)

r heatmap ggplot2 shiny ggplotly

7
推荐指数
1
解决办法
926
查看次数

Plotly:如何为地图设置 ylim 和 xlim?

目标: 我正在尝试使用 plotly(通过 ggplotly)创建 ggplot2 地图的交互式版本。

问题: Plotly 在图表上方和下方添加额外的空间,而不是像它应该的那样“拉伸”图表(例如,参见图片)。

例子

我想要什么(在 ggplot2 中制作的示例):

在此处输入图片说明

我得到了什么(以情节制作的例子):

在此处输入图片说明

我知道 ggplotly 不支持 aspect.ratio 但是有没有其他方法可以在保持 x 轴 (-12,2) 和 y 轴 (50,60) 限制的同时删除上下空间

代码:

library(maps)
library(ggplot2)
library(plotly)

boundaries <- ggplot2::map_data("world", region=c("UK","Ireland","France","Norway"))

map <- ggplot() +
  geom_polygon(data=boundaries, aes(x=long, y=lat, group=group), color="black", fill="white") +
  coord_sf(xlim=c(-12, 2), ylim=c(50,60)) +
  theme(aspect.ratio = 1.2)

show(map)

visual <- ggplotly(map, height=1.2*400, width=400, tooltip=c("text"), hoverinfo='hide', 
                               dynamicTicks=F) %>%
  layout(xaxis=list(autorange=F, range=c(-12, 2)), yaxis = list(autorange=F, range=c(50,60)))

show(visual)
Run Code Online (Sandbox Code Playgroud)

要复制问题:

操作系统:Windows 10
IDE:RStudio
R:R 3.6.1

r ggplot2 plotly ggplotly

7
推荐指数
2
解决办法
678
查看次数

标签 统计

ggplotly ×10

ggplot2 ×9

r ×9

plotly ×7

r-plotly ×2

heatmap ×1

legend ×1

plot ×1

powerpoint ×1

python ×1

shiny ×1