r - ggplot2:如何在角度为 0 度的圆形 360 度条形图中显示数据点?
问题描述
我得到了一个圆形 360 度条形图,我需要在其中手动指定每个条形的角度(数字 x 轴)。一般来说,除了角度分别为 0 的数据点之外,绘图工作正常。360度。此行被移除且未绘制,即使条形宽度为 1。
为什么会这样?如何绘制中心值为 0 且条宽为 20 的条(从 -10 到 350 度到 10 度)?
谢谢!
MWE:
library(tidyverse)
# dummy data
data <- data.frame(
variable = c(0, 90, 180, 270),
value = c(50, 100, 150, 200))
# plot
ggplot(data, aes(x = variable, y = value, fill = factor(variable))) +
geom_col(width = 20) + # Even with a widh of 1 the first datapoint is removed from the plot.
scale_x_continuous(breaks = seq(from=0, to=359, by=10), limits=c(0, 360)) +
coord_polar(start = 0)
解决方案
我看不到一个简单的通用解决方案来绘制跨越极坐标环绕点的条形图,但是很容易改变限制和起点以获得所需的效果:
ggplot(data, aes(x = variable, y = value, fill = factor(variable))) +
geom_col(width = 20) +
scale_x_continuous(breaks = seq(0, 359, by = 10), limits = c(-10, 350)) +
coord_polar(start = -pi/18, clip = "off")
显然,如果您尝试在 350 到 359 度之间而不是 0 到 9 度之间绘制条形图,现在这会导致问题,但是假设您不希望任何条形重叠,我猜这不是问题。
推荐阅读
- android - 在 kotlin android 中获取 sim 卡号的检查权限运行时?
- java - Java / 从 Observable 转换
- > 列出
- java - 通过maven构建cxf Web服务(java2wsdl)时出现空指针异常
- c - 将字符数组中的字符放入字符串中,直到找到特定字符
- powerbi - Power BI - 根据输入创建基于事务的表
- excel - 为什么触发组合框的 AfterUpdate() 事件时列表框选择不起作用?
- ios - iphone 6 swift 4.2中的视频冻结
- c# - ImageMagick Sharp 比较过于敏感
- php - 如何在锚标签的标题中放置 yii2 表单错误
- java - 我得到了`DSRA9122E:com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@d3t7e556 不包装任何类型为 oracle.jdbc.OracleConnection 的对象