R-Y轴上的组条形图

R-Y轴上的组条形图,r,charts,bar-chart,plotly,R,Charts,Bar Chart,Plotly,我正试图在R中构建一个分组条形图。我已将数据框粘贴在下面。我一直在使用绘图构建图表。问题是,Y轴上的数字不正确,因为它们不会按升序增加。我还发布了一张图表的图片 有人能指出我错在哪里吗 数据帧 正如@neilfws在评论中提到的,问题是您的y访问数据是基于各种因素构建的。您可以尝试在读取数据时修复此问题(如@neilfws所述),或者在打印之前将数据强制为数字。下面是如何做到后者 chart.supp.part.defect.matrix[,2:10] <- lapply(chart.su

我正试图在R中构建一个分组条形图。我已将数据框粘贴在下面。我一直在使用绘图构建图表。问题是,Y轴上的数字不正确,因为它们不会按升序增加。我还发布了一张图表的图片

有人能指出我错在哪里吗

数据帧
正如@neilfws在评论中提到的,问题是您的
y
访问数据是基于各种因素构建的。您可以尝试在读取数据时修复此问题(如@neilfws所述),或者在打印之前将数据强制为数字。下面是如何做到后者

chart.supp.part.defect.matrix[,2:10] <- lapply(chart.supp.part.defect.matrix[,2:10], as.numeric)

p3 <- plot_ly(chart.supp.part.defect.matrix, x = ~Supplier, y = ~PaintMarking45, type = 'bar', name = 'Paint/Marking-45') %>%
  add_trace(y = ~Seal78,name = 'Seal-78') %>%
  add_trace(y = ~AirConditioning57,name = 'Air conditioning - 57') %>%
  add_trace(y = ~Engine34,name = 'Engine-34') %>%
  add_trace(y = ~CargoCompartment543,name = 'Cargo compartment-543') %>%
  add_trace(y = ~Insulation11 ,name = 'Insulation -11') %>%
  add_trace(y = ~Insulation6,name = 'Insulation-6') %>%
  add_trace(y = ~Engine11,name = 'Engine-11') %>%
  add_trace(y = ~Propulsion32,name = 'Propulsion-32') %>%
  layout(yaxis = list(title = 'Defect Count'), barmode = 'group') %>%
  layout(title = title)

p3
图表辅助零件缺陷矩阵[,2:10]%
添加_跟踪(y=~AirConditioning57,name='airconditioning-57')%>%
添加_跟踪(y=~Engine34,name='Engine-34')%>%
添加_跟踪(y=~Cargo隔间543,名称='Cargo隔间-543')%>%
添加_跟踪(y=~Insulation11,name='Insulation-11')%>%
添加_跟踪(y=~Insulation6,name='Insulation-6')%>%
添加_跟踪(y=~Engine11,name='Engine-11')%>%
添加_轨迹(y=~Propulsion32,name='Propulsion-32')%>%
布局(yaxis=list(title='Defect Count'),barmode='group')%>%
布局(标题=标题)
p3

此外,在这种情况下,不需要调用
ggplotly
。只有当您想使用
ggplot2
构建绘图,然后将plotly的交互性添加到ggplot对象时,才需要该功能。

正如@neilfws在一篇评论中提到的,问题是您的
y
访问数据是基于各种因素构建的。您可以尝试在读取数据时修复此问题(如@neilfws所述),或者在打印之前将数据强制为数字。下面是如何做到后者

chart.supp.part.defect.matrix[,2:10] <- lapply(chart.supp.part.defect.matrix[,2:10], as.numeric)

p3 <- plot_ly(chart.supp.part.defect.matrix, x = ~Supplier, y = ~PaintMarking45, type = 'bar', name = 'Paint/Marking-45') %>%
  add_trace(y = ~Seal78,name = 'Seal-78') %>%
  add_trace(y = ~AirConditioning57,name = 'Air conditioning - 57') %>%
  add_trace(y = ~Engine34,name = 'Engine-34') %>%
  add_trace(y = ~CargoCompartment543,name = 'Cargo compartment-543') %>%
  add_trace(y = ~Insulation11 ,name = 'Insulation -11') %>%
  add_trace(y = ~Insulation6,name = 'Insulation-6') %>%
  add_trace(y = ~Engine11,name = 'Engine-11') %>%
  add_trace(y = ~Propulsion32,name = 'Propulsion-32') %>%
  layout(yaxis = list(title = 'Defect Count'), barmode = 'group') %>%
  layout(title = title)

p3
图表辅助零件缺陷矩阵[,2:10]%
添加_跟踪(y=~AirConditioning57,name='airconditioning-57')%>%
添加_跟踪(y=~Engine34,name='Engine-34')%>%
添加_跟踪(y=~Cargo隔间543,名称='Cargo隔间-543')%>%
添加_跟踪(y=~Insulation11,name='Insulation-11')%>%
添加_跟踪(y=~Insulation6,name='Insulation-6')%>%
添加_跟踪(y=~Engine11,name='Engine-11')%>%
添加_轨迹(y=~Propulsion32,name='Propulsion-32')%>%
布局(yaxis=list(title='Defect Count'),barmode='group')%>%
布局(标题=标题)
p3

此外,在这种情况下,不需要调用
ggplotly
。仅当您希望使用
ggplot2
构建绘图,然后将plotly的交互性添加到ggplot对象时,才需要该功能。

除了Adam Spannbauer的方法外,您还可以通过将
yaxis
类型设置为
线性
来强制plotly将数据解释为数字

layout(yaxis=list(type='linear'))

除了Adam Spannbauer的方法外,您还可以通过将
yaxis
类型设置为
线性

layout(yaxis=list(type='linear'))

您能否将
dput(chart.supp.part.defect.matrix)
的输出添加到您的问题中?@MaximilianPeters Done。问题是您的值存储为因子,而不是数字。当您将数据读入R(使用
read.table
maybe?)并且未指定
stringsAsFactors=FALSE
时,可能会发生这种情况。您可能还需要指定
na.strings
(哪个字符表示缺少的值)。您可以将
dput(chart.supp.part.defect.matrix)
的输出添加到您的问题中吗?@MaximilianPeters Done。问题是您的值存储为因子,而不是数字。当您将数据读入R(使用
read.table
maybe?)并且未指定
stringsAsFactors=FALSE
时,可能会发生这种情况。您可能还需要指定
na.strings
(哪个字符表示缺少的值)。您是正确的。不幸的是,我只能选择一个正确答案。谢谢你的帮助,你是对的。不幸的是,我只能选择一个正确答案。谢谢你的帮助
layout(yaxis=list(type='linear'))