发出「;不适用;在R和ggplot2的条形图中排列条形图时
我正在尝试使用ggplot2和R中的plotly创建一个下降条条形图。我使用的数据是“a12”,ggplot在“最终数据帧在下方使用”行下使用该数据 如果您看到下面的快照,“a1”列中的“na”值应位于绘图中的第二个点,但它不遵循降序,而是在最后一个点按下 解决这个问题的一种方法是对那里的值进行硬编码,但我不想这样做。相反,有没有一种方法可以让“na”遵循顺序,而无需硬编码任何值 注意:请不要修改“#最终数据帧在下面消耗”行上方的数据。我正在处理的实际数据实际上是相同的格式。请帮忙发出「;不适用;在R和ggplot2的条形图中排列条形图时,r,ggplot2,plotly,geom-bar,ggplotly,R,Ggplot2,Plotly,Geom Bar,Ggplotly,我正在尝试使用ggplot2和R中的plotly创建一个下降条条形图。我使用的数据是“a12”,ggplot在“最终数据帧在下方使用”行下使用该数据 如果您看到下面的快照,“a1”列中的“na”值应位于绘图中的第二个点,但它不遵循降序,而是在最后一个点按下 解决这个问题的一种方法是对那里的值进行硬编码,但我不想这样做。相反,有没有一种方法可以让“na”遵循顺序,而无需硬编码任何值 注意:请不要修改“#最终数据帧在下面消耗”行上方的数据。我正在处理的实际数据实际上是相同的格式。请帮忙 a1 = c
a1 = c("A","","B","C","D","F")
b1 = c(165,154,134,110,94,78)
a12 = data.frame(a1,b1)
a12[2, 1] = "NA"
#Final Data frame is consumed below
pp1 <<- ggplot(a12 ,
aes(x = reorder(a1, -b1),
y = b1,
text = paste("User: <br>", a1, "<br> Days: <br>", round(b1)))) +
geom_bar(stat = "identity", fill = "#3399ff" ) +
scale_y_continuous(name = "Time") +
scale_x_discrete(name = "Employee")
ggplotly(pp1, tooltip="text", height = 392)
a1=c(“A”、“B”、“c”、“D”、“F”)
b1=c(165154134110,94,78)
a12=数据帧(a1,b1)
a12[2,1]=“NA”
#最终数据帧消耗如下
pp1为了按照您想要的方式排列条形图,在df$a1
中不应缺少值,即NA
。我们需要以某种方式替换丢失的值
由于您在上面的评论中要求“不替换,不修改数据”,我建议您使用替换ggplot
调用中缺少的值,例如tidyr::replace_na
。这将保持原始数据不变
library(tidyr)
library(ggplot2)
pp1 <- ggplot(data = replace_na(a12, replace = list(a1 = "NA")),
aes(x = reorder(a1, -b1),
y = b1,
text = paste("User: <br>", a1, "<br> Days: <br>", round(b1)))) +
geom_bar(stat = "identity", fill = "#3399ff") +
scale_y_continuous(name = "Time") +
scale_x_discrete(name = "Employee")
ggplotly(pp1, tooltip = "text",height = 392)
library(tidyr)
图书馆(GG2)
pp1为了按照您想要的方式排列条形图,在df$a1
中不应缺少值,即NA
。我们需要以某种方式替换丢失的值
由于您在上面的评论中要求“不替换,不修改数据”,我建议您使用替换ggplot
调用中缺少的值,例如tidyr::replace_na
。这将保持原始数据不变
library(tidyr)
library(ggplot2)
pp1 <- ggplot(data = replace_na(a12, replace = list(a1 = "NA")),
aes(x = reorder(a1, -b1),
y = b1,
text = paste("User: <br>", a1, "<br> Days: <br>", round(b1)))) +
geom_bar(stat = "identity", fill = "#3399ff") +
scale_y_continuous(name = "Time") +
scale_x_discrete(name = "Employee")
ggplotly(pp1, tooltip = "text",height = 392)
library(tidyr)
图书馆(GG2)
pp1在您的第三行设置stringsAsFactors=FALSE
。@markus,它成功了,谢谢,我也想知道,假设我有一个1000行的数据,其中多个列具有相似的“NA”值,这个命令处理整个数据吗?请像上面所做的那样提出一个新问题,给出一个可重复的示例。我会解决这个问题,非常感谢您的帮助,我还有一个问题需要您的帮助,请检查您第三行中SetstringsAsFactors=FALSE
的可能重复链接。@markus,成功了,谢谢,我也想知道,假设我有1000行数据,多个列具有类似的“NA”值,这个命令能处理所有的数据吗?请把这个问题变成一个新的问题,给出一个可复制的例子,就像你上面做的那样。我会解决这个问题的,非常感谢你的帮助,我还遇到了另一个问题,我需要你的帮助,请检查这个链接可能的重复