R 中的 Plotly Yaxis2 格式刻度标签
Plotly Yaxis2 format tick labels in R
我正在尝试使用 plotly
和下面 R Markdown 代码中给出的数据在我的辅助 Y 轴上显示除直零以外的任何内容:
---
title: "Test Stack Overflow Trending"
author: ""
date: ""
output:
html_document:
self_contained: no
---
```{r plot1, results='asis', tidy=FALSE, echo=FALSE, fig.retina=NULL, message=FALSE, out.width = "92%", out.height="450px"}
require(plotly)
require(data.table)
mydt <- data.table(NAME = "Overall", Val = c(391234, 518834, 489567),perc = c(0.24,0.25,0.24), mytdate=c("2015-09-01","2015-10-01","2015-11-01"))
mydt$mydate <- as.Date(mydt$mytdate,"%Y-%m-%d")
p1 <- mydt %>%
plot_ly(x = mydate, y = Val,type = "scatter", mode = "markers") %>%
add_trace(x = mydate, y = perc, yaxis = "y2", mode="lines+markers") %>%
layout(showlegend = F, xaxis=list(title=""),yaxis=list(title=""),yaxis2 = list(side="right",overlay="y", ticks="inside",tickformat = ":04,2f"))
p1
```
我在 Windows 7 64 位操作系统上使用 R 3.1.3 64 位。我正在使用 plotly 包版本:2.0.16(2015 年 12 月中旬从 Github 下载)。
这是我使用 Google Chrome 获得的图像,版本:47.0.2526.111 附在下面。请注意,我的右手轴显示常量零。我希望它显示类似 0.21、0.22、0.23、0.24 的值。我知道必须有一种方法可以用 tickformat 选项来改变它,但我还没有弄清楚。
Output seen in Google Chrome
好吧,我找到了解决我自己问题的方法。如果我删除布局中的 showlegend=F 选项,y2 轴将正确显示。如果我不想显示图例,我仍然不知道如何让它工作。另外,我在布局中有错误的选项,它应该显示为 "overlaying",而不是 "overlay"。如果可能的话,仍然希望使用 showlegend=F 得到更好的答案。
我知道如何解决您的问题,但我需要在文档中找到它。所以你只需要玩你的情节的边距和大小。此外,它会给你足够的空间来添加标签。
m = list(
l = 50,
r = 50,
b = 100,
t = 100,
pad = 4
)
并添加 layout()
并使用 height
和 width
p1 <- mydt %>%
plot_ly(x = mydate, y = Val,type = "scatter", mode = "markers") %>%
add_trace(x = mydate, y = perc, yaxis = "y2", mode="lines+markers") %>%
layout(showlegend = F, xaxis=list(title=""),yaxis=list(title=""),yaxis2 = list(side="right",overlay="y", ticks="inside",tickformat = ":04,2f")) %>% layout(autosize = F, width = 750, height = 500, margin = m)
p1
我正在尝试使用 plotly
和下面 R Markdown 代码中给出的数据在我的辅助 Y 轴上显示除直零以外的任何内容:
---
title: "Test Stack Overflow Trending"
author: ""
date: ""
output:
html_document:
self_contained: no
---
```{r plot1, results='asis', tidy=FALSE, echo=FALSE, fig.retina=NULL, message=FALSE, out.width = "92%", out.height="450px"}
require(plotly)
require(data.table)
mydt <- data.table(NAME = "Overall", Val = c(391234, 518834, 489567),perc = c(0.24,0.25,0.24), mytdate=c("2015-09-01","2015-10-01","2015-11-01"))
mydt$mydate <- as.Date(mydt$mytdate,"%Y-%m-%d")
p1 <- mydt %>%
plot_ly(x = mydate, y = Val,type = "scatter", mode = "markers") %>%
add_trace(x = mydate, y = perc, yaxis = "y2", mode="lines+markers") %>%
layout(showlegend = F, xaxis=list(title=""),yaxis=list(title=""),yaxis2 = list(side="right",overlay="y", ticks="inside",tickformat = ":04,2f"))
p1
```
我在 Windows 7 64 位操作系统上使用 R 3.1.3 64 位。我正在使用 plotly 包版本:2.0.16(2015 年 12 月中旬从 Github 下载)。
这是我使用 Google Chrome 获得的图像,版本:47.0.2526.111 附在下面。请注意,我的右手轴显示常量零。我希望它显示类似 0.21、0.22、0.23、0.24 的值。我知道必须有一种方法可以用 tickformat 选项来改变它,但我还没有弄清楚。 Output seen in Google Chrome
好吧,我找到了解决我自己问题的方法。如果我删除布局中的 showlegend=F 选项,y2 轴将正确显示。如果我不想显示图例,我仍然不知道如何让它工作。另外,我在布局中有错误的选项,它应该显示为 "overlaying",而不是 "overlay"。如果可能的话,仍然希望使用 showlegend=F 得到更好的答案。
我知道如何解决您的问题,但我需要在文档中找到它。所以你只需要玩你的情节的边距和大小。此外,它会给你足够的空间来添加标签。
m = list(
l = 50,
r = 50,
b = 100,
t = 100,
pad = 4
)
并添加 layout()
并使用 height
和 width
p1 <- mydt %>%
plot_ly(x = mydate, y = Val,type = "scatter", mode = "markers") %>%
add_trace(x = mydate, y = perc, yaxis = "y2", mode="lines+markers") %>%
layout(showlegend = F, xaxis=list(title=""),yaxis=list(title=""),yaxis2 = list(side="right",overlay="y", ticks="inside",tickformat = ":04,2f")) %>% layout(autosize = F, width = 750, height = 500, margin = m)
p1