You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言Plotly绘制交互式柱状图输出不符预期,求解决

排查Plotly交互式柱状图异常问题

我尝试用R语言的Plotly绘制交互式柱状图,使用的数据集是continental_death_total.csv,但输出结果和预期完全不符。

原代码

df<- read.csv("continental_death_total.csv")

fig <- df %>%
  plot_ly(
    x = ~continent,
    y = ~continental_sum,
    frame = ~date,
    type = 'bar',
    mode = 'markers',
    showlegend = F
  )

fig

异常输出截图

输出结果异常截图


问题排查与修复方案

1. 移除错误的mode参数

柱状图类型(type='bar')不需要设置mode='markers',该参数仅适用于散点图,会干扰柱状图的正常渲染,直接删除这一行即可。

2. 修正日期格式

frame=~date依赖正确的日期类型解析,如果原始数据中date列是字符串格式,Plotly无法生成正确的时间动画轴,需要先转换为日期类型:

df$date <- as.Date(df$date)

3. 确保数据无重复聚合

如果数据中存在同一日期+大洲的重复记录,会导致柱状图显示混乱,需先按date和continent分组计算总和:

library(dplyr)
df <- df %>%
  group_by(date, continent) %>%
  summarise(continental_sum = sum(continental_sum), .groups = "drop")

修复后的完整代码

library(plotly)
library(dplyr)

# 数据读取与预处理
df <- read.csv("continental_death_total.csv")
df$date <- as.Date(df$date)
df <- df %>%
  group_by(date, continent) %>%
  summarise(continental_sum = sum(continental_sum), .groups = "drop")

# 绘制交互式动画柱状图
fig <- df %>%
  plot_ly(
    x = ~continent,
    y = ~continental_sum,
    frame = ~date,
    type = 'bar',
    showlegend = F
  ) %>%
  layout(
    yaxis = list(title = "死亡总数"),
    xaxis = list(title = "大洲"),
    title = "各洲死亡总数随时间变化"
  )

fig

内容的提问来源于stack exchange,提问作者Golem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 08:40:28