plot_ly水平条形图无法渲染问题求助
问题原因与解决方案
你的代码出现空白图表的核心问题是水平条形图的轴绑定逻辑搞反了:
- Plotly中设置
orientation = 'h'(水平条形图)时,需要将数值型变量(count)绑定到x参数,分类型变量(name)绑定到y参数;你原来的代码把分类变量放在了x,数值变量放在y,导致轴类型不匹配,图表无法正常渲染。 - 同时你在
layout里的轴标题、排序参数也对应错了位置,需要同步调整。
修正后的代码
data %>% plot_ly( x = ~count, # 数值变量移到x轴 y = ~name, # 分类变量移到y轴 marker = list(color = colors[1]), type = 'bar', orientation = 'h' ) %>% layout( paper_bgcolor = "#F5F5F5", plot_bgcolor = "#F5F5F5", xaxis = list( title = "count" # x轴对应数值,修改标题 ), yaxis = list( title = "company", # y轴对应分类,修改标题 categoryorder = "total descending" # 分类排序参数移到y轴 ) )
关键调整点说明
- 交换
x和y的变量绑定:水平条形图的长度由x轴数值决定,条形位置对应y轴的分类项 - 调整轴标题:匹配变量对应的轴功能
- 移动
categoryorder参数:分类排序逻辑需要作用在存储分类变量的y轴上,而非原来的x轴
内容的提问来源于stack exchange,提问作者Pawels
相关产品推荐
相关产品推荐

