[英]How to turn the color scale in Plotly r to log scale
I am trying to have a logarithmic scale for the color bar in R, any ideas on how I can do it? 我正在尝试为R中的颜色栏设置对数标度,关于如何做到这一点有什么想法吗?
My code: 我的代码:
TEST_DATAFRAME = read.table(TEST_FILE, sep="\\t",skip=2, header=T) PROD_DATAFRAME = read.table(PROD_FILE, sep="\\t",skip=2, header=T) PARAMETER = "Vf_High" LST_RESIDUAL <- PROD_DATAFRAME[PARAMETER] - TEST_DATAFRAME[PARAMETER] PARAM_DATAFRAME <- data.frame("NEW_MEASUREMENT" = TEST_DATAFRAME[PARAMETER], "OLD_MEASUREMENT" = PROD_DATAFRAME[PARAMETER], "RESIDUAL" = LST_RESIDUAL) colnames(PARAM_DATAFRAME) <- c("NEW_MEASUREMENT","OLD_MEASUREMENT","RESIDUAL") p <- plot_ly(PARAM_DATAFRAME, x = ~OLD_MEASUREMENT, y = ~NEW_MEASUREMENT, color=~RESIDUAL, colorscale = "Log", hovertext = paste("<b>New Measurement :</b>", PARAM_DATAFRAME$NEW_MEASUREMENT, "<br><b>Old Measurement :</b>", PARAM_DATAFRAME$OLD_MEASUREMENT, "<br><b>Residual :</b>" , PARAM_DATAFRAME$RESIDUAL)) %>% add_markers() #p <- layout(p, color = list(type = "log")) p
this is my current output: 这是我当前的输出:
I also tried the following code: 我还尝试了以下代码:
TEST_DATAFRAME = read.table(TEST_FILE, sep="\\t",skip=2, header=T) PROD_DATAFRAME = read.table(PROD_FILE, sep="\\t",skip=2, header=T) PARAMETER = "Vf_High" LST_RESIDUAL <- PROD_DATAFRAME[PARAMETER] - TEST_DATAFRAME[PARAMETER] PARAM_DATAFRAME <- data.frame("NEW_MEASUREMENT" = TEST_DATAFRAME[PARAMETER], "OLD_MEASUREMENT" = PROD_DATAFRAME[PARAMETER], "RESIDUAL" = abs(LST_RESIDUAL)) colnames(PARAM_DATAFRAME) <- c("NEW_MEASUREMENT","OLD_MEASUREMENT","RESIDUAL") brks <- pretty(range(PARAM_DATAFRAME$RESIDUAL)) gg <- ggplot(PARAM_DATAFRAME, aes(NEW_MEASUREMENT, OLD_MEASUREMENT, color = RESIDUAL)) + geom_point() + scale_colour_gradient( low = "blue", high = "red", trans = "log", breaks = brks, labels = brks) + theme_minimal() ggplotly(gg)
this is the result: 结果是:
How can I give it legible labelling? 如何给它清晰的标签?
You could use ggplot
to generate the logarithmic colour scale and then have plotly::ggplotly
turn the ggplot
grob into a plotly object. 您可以使用
ggplot
生成对数色标,然后使用plotly::ggplotly
将ggplot
变成一个可绘制的对象。
Since you don't provide reproducible sample data, here is an example based on mtcars
由于您不提供可复制的样本数据,因此以下是基于
mtcars
的示例
brks <- pretty(range(mtcars$disp))
gg <- ggplot(mtcars, aes(mpg, wt, colour = disp)) +
geom_point() +
scale_colour_gradient(
low = "blue", high = "red",
trans = "log", breaks = brks, labels = brks) +
theme_minimal()
ggplotly(gg)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.