我正试着在柱状图上画出一张白线图,但是x轴似乎不合适。
所以这是我的代码:
#Emotion im FB darstellen
y <- FB$Ärger[FB$Episode ==1] #Subset erstellen
data <- factor(y, levels = c(1:7)) #faktorisieren
table(data)
#barplot erstellen
barplot(table(data),
main = "E1 - Ärger",
xlab = "Rating",
ylab = "Häufigkeit",
ylim = c(0, 8))
#w2v integrieren
abline(v=1,col="red")
abline(v=2,col="red")
abline(v=3,col="red")
abline(v=4,col="red")
abline(v=5,col="red")
abline(v=6,col="red")
abline(v=7,col="red")
abline(v=index(my.xts.data)[endpoints(my.xts.data, "days")]这就是我得到的:

理想情况下,abline(v=1)应该显示在第一个栏的中心,等等。但是barplot x轴的尺度似乎比barplot的尺度要短。你知道我怎么才能让它们都合身吗?
非常感谢!洛雷娜
发布于 2020-05-28 18:45:58
问题是barplot会自动在每个条形图前面添加0.2的空格。这意味着您有两个选择。一种是去掉空格,然后从每个abline的值中减去0.5,使其与条形的中心匹配:
Rating <- factor(c(1, 2, 2, 2, 2, 2, 3, 3, 4, 5), levels = 1:7)
barplot(table(Rating),
main = "E1 - Ärger",
xlab = "Rating",
ylab = "Häufigkeit", space = 0)
abline(v = seq(7) - 0.5, col = "red")

另一种选择是保留空格,从0.7开始,每个条形图递增1.2:
barplot(table(Rating),
main = "E1 - Ärger",
xlab = "Rating",
ylab = "Häufigkeit")
abline(v = seq(0.7, 8, 1.2), col = "red")

为了更简单,您可以定义一个函数来为您执行计算:
add_vlines <- function(x) abline(v = (x * 1.2) - 0.5, col = "red")所以你可以这样做:
add_vlines(1:7)以获得您正在寻找的线路。
https://stackoverflow.com/questions/62061859
复制相似问题