如何在R语言中移除三元图上叠加的XY坐标系网格线
解决Plotly三元图中多余XY坐标系网格线的问题
我完全懂你的困扰——用plot_ly绘制三元散点图时,默认的XY笛卡尔坐标系网格线会莫名叠加在三元图上面,而你只想保留三元图自身的网格线对吧?别着急,这个问题只需要在layout()里加几行配置就能解决。
问题根源
plot_ly默认会初始化一套标准的XY坐标系,哪怕你指定了scatterternary类型,这套坐标系还是会默认显示出来,这就是你看到的多余网格线的来源。我们只需要手动把这套XY坐标系隐藏掉就行。
修改后的完整代码
axis <- function(title) { list( title = title, titlefont = list( size = 20 ), tickfont = list( size = 15 ), tickcolor = 'rgba(0,0,0,0)', ticklen = 5 ) } at <- list(title = "Ler <4mu", # titlefont=list(size=20), font=list(size=20), tickfont=list(size=16), range= list(n=100,min=20,max=80) ) bt <- list(title = "Fint silt 4-16mu", # titlefont=list(size=20), font=list(size=20), tickfont=list(size=16) ) ct <- list(title = "Medium og groft silt 16-62mu", # titlefont=list(size=20), font=list(size=20), tickfont=list(size=16)) p <- plot_ly(new_data, type = 'scatterternary', mode = 'markers', a = as.numeric(new_data$Fraktion1), b = as.numeric(new_data$Fraktion2), c = as.numeric(new_data$Fraktion3), color= as.numeric(new_data$Vandoptag), marker = list( size = 12 ) ) %>% layout( title = "", margin = list(l = 0, r=0, t=50, b=100), # 新增:隐藏默认的XY坐标系 xaxis = list(visible = FALSE), yaxis = list(visible = FALSE), ternary = list( sum = 100, aaxis = at , baxis = bt, caxis = ct ) ) p
关键修改点
在layout()函数里,我们新增了xaxis和yaxis的配置:
visible = FALSE会直接隐藏整个XY坐标系,包括它的网格线、刻度和轴标签,完全不会影响三元图自身的网格和轴配置。
这样修改后,你就能得到只有三元图自身网格的干净图表了!
内容的提问来源于stack exchange,提问作者Mike Messerli
相关产品推荐
相关产品推荐

