首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Abline不适合barplot

Abline不适合barplot
EN

Stack Overflow用户
提问于 2020-05-28 17:56:07
回答 1查看 69关注 0票数 0

我正试着在柱状图上画出一张白线图,但是x轴似乎不合适。

所以这是我的代码:

代码语言:javascript
复制
#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的尺度要短。你知道我怎么才能让它们都合身吗?

非常感谢!洛雷娜

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-28 18:45:58

问题是barplot会自动在每个条形图前面添加0.2的空格。这意味着您有两个选择。一种是去掉空格,然后从每个abline的值中减去0.5,使其与条形的中心匹配:

代码语言:javascript
复制
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:

代码语言:javascript
复制
barplot(table(Rating), 
        main = "E1 - Ärger", 
        xlab = "Rating", 
        ylab = "Häufigkeit")
abline(v = seq(0.7, 8, 1.2), col = "red")

为了更简单,您可以定义一个函数来为您执行计算:

代码语言:javascript
复制
add_vlines <- function(x) abline(v = (x * 1.2) - 0.5, col = "red")

所以你可以这样做:

代码语言:javascript
复制
add_vlines(1:7)

以获得您正在寻找的线路。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62061859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档