我在R中使用plotly创建了以下3d散点图。 为此,我使用了以下代码 数据setTxy仅包含每个标记的x,y,z坐标,每个坐标点的值在0-1.5之间(在名称为vectorM的列中)
figfactor<- plot_ly(setTxy, x=~xplot,y=~yplot*-1,z=(~zplot*-1),
type="scatter3d",mode="markers",
marker=list(color=~vectorM,
colorscale=c("rgb(244, 244, 244)","rgb(65, 65, 65)"),
showscale=TRUE,
line=list(width=2,color='DarkSlateGrey')))
figfactor <- figfactor %>% add_markers()
figfactor <- figfactor %>% layout(scene = list(xaxis = list(title = 'x-value [mm]'),
yaxis = list(title = 'y-value [mm]'),
zaxis = list(title = 'z-value [mm]')),
annotations = list(
x = 1.06,
y = 1.03,
text = 'factor',
xref = 'paper',
yref = 'paper',
showarrow = FALSE
))
figfactor
我以为我将所有颜色都更改为灰色,但是情节中仍然有collor。 我该如何更改?进一步: -为什么缩放比例不是灰色的;我该如何创建呢? -如何在右边的比例尺上方勾画出“因素” -为什么我有“迹线0”和“迹线1”?
如何通过绘制图形或使用圆的公式在此图形中绘制两个圆?
谢谢
答案 0 :(得分:0)
根据文档scatter-marker-color,问题在于颜色的格式错误。请注意下面用粗体标记的部分
设置色彩比例。仅在
marker.line.color
中设置为数值数组时才有效。 色标必须是包含数组的数组,将规范化的值映射到rgb,rgba,hex,hsl,hsv或命名的颜色字符串。至少需要最低(0)和最高(1)值的映射。例如,[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]
。要控制色彩空间中色阶的范围,请使用marker.line.cmin
和marker.line.cmax
。另外,colorscale
可以是以下列表的调色板名称字符串:
- 灰色,YlGnBu,绿色,YlOrRd,Bluered,RdBu,红色,蓝调,野餐,彩虹,波特兰,喷射,热,黑体,地球,电,Viridis,Cividis。
在R
中,使用array
创建数组或将其作为列表(或向量列表)的list
。因此,我们可以通过两种方式获得全灰色的颜色:
colourscale = 'Greys'
以mtcars
数据为例,可以这样做
data(mtcars)
library(plotly)
plot_ly(mtcars, x = ~hp, y = ~cyl, z = ~mpg,
type = 'scatter3d', mode = 'markers',
marker = list(color = ~ hp,
# Use either a named palette in the above list:
#colorscale = 'Greys',
# Or use a list of vector scales.
colorscale = list(c(0, rgb(55, 55, 55, max = 255)),
c(1, rgb(244, 244, 244, max = 255))),
showscale = TRUE))
请注意,除非您要专门在点之间添加线,否则line
参数是不必要的,并且列表的 order 确实很重要(例如c(1, ...)
应该始终之后 c(0, ...)
)。