r - Abline 不适合条形图
问题描述
我正在尝试将斜线图添加到条形图,但 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) 应该出现在第一个条的中心,依此类推。但是 abline x 轴的比例似乎比条形图的比例短。有什么想法可以让他们两个都合身吗?
非常感谢!洛雷娜
解决方案
问题是barplot
在每个条之前自动添加 0.2 的空间。这意味着您有两个选择。一种是去掉空格,然后从每个值中减去 0.5abline
以使其匹配到条形的中心:
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)
得到你正在寻找的线路。
推荐阅读
- oracle - 如果我在以下查询中查询,则会出现错误
- r - 寻找和写作环境
- jekyll - 从 MathJax 2.7.5 升级到 3.0,试图保留一个自定义的 TeX 环境
- docker - 为什么在打开浏览器时测试会毫无头绪地失败?
- excel - 在不指定 Excel 文件路径的情况下使用 VBA 从 Excel 打开 PowerPoint 演示文稿
- node.js - 无法将属性“用户名”设置为 null
- c# - 多次 IEnumerable 迭代
- javascript - clearInterval Javascript 不起作用,尝试了两种不同的方法
- python-3.x - 如何从 MultiGraph 二分网络生成投影图
- kubernetes - 如何使用 Spring Cloud Netflix 容器在 GKE 中定义 Ingress