R 带极坐标的条形图,调整以在ggplot中变细

R 带极坐标的条形图,调整以在ggplot中变细,r,ggplot2,plot,R,Ggplot2,Plot,我想用ggplot创建一个得分图,就像你在角色扮演游戏中经常看到的那样,有正面和负面的得分 为此,我使用了geom\u col和coord\u polar。问题在于,由于整个绘图空间坐标系变形,所以条形图不是矩形而是梯形 是否可以对此进行调整以获得适当的均匀条(并在绘图中心添加一些空间以避免重叠) 额外要求:根据x轴上的值的数量,是否可以使用多边形网格代替圆形网格?您可以使用线段代替条形。厚度将取决于您选择的尺寸,而不是坐标系: # sample dataset set.seed(333) n

我想用ggplot创建一个得分图,就像你在角色扮演游戏中经常看到的那样,有正面和负面的得分

为此,我使用了
geom\u col
coord\u polar
。问题在于,由于整个绘图空间坐标系变形,所以条形图不是矩形而是梯形

是否可以对此进行调整以获得适当的均匀条(并在绘图中心添加一些空间以避免重叠)


额外要求:根据x轴上的值的数量,是否可以使用多边形网格代替圆形网格?

您可以使用线段代替条形。厚度将取决于您选择的尺寸,而不是坐标系:

# sample dataset
set.seed(333)
n.dim = 9
df <- data.frame(
  x = paste("attribute", seq(1, n.dim), sep = "."),
  score = rnorm(n.dim)
)

ggplot(df,
       aes(x = x, y = score, 
           xend = x, yend = 0,
           col = score >= 0)) +
  geom_segment(size = 15) +                 # adjust size for different bar thickness
  scale_y_continuous(expand = c(0.1, 0)) +  # increase space at plot centre
  coord_polar() +
  theme_minimal() +
  theme(legend.position = "none",
        axis.title = element_blank(),
        axis.text.y = element_blank(),
        panel.grid.major.x = element_blank())
#示例数据集
种子集(333)
n、 尺寸=9
df=0)+
geom_段(尺寸=15)+#根据不同的钢筋厚度调整尺寸
缩放y连续(扩展=c(0.1,0))+#增加绘图中心的空间
coord_polar()+
主题_极小值()+
主题(legend.position=“无”,
axis.title=元素_blank(),
axis.text.y=元素_blank(),
panel.grid.major.x=element\u blank()

我认为多边形网格(而不是圆形网格)更难解释,因为距绘图中心的距离不再和y轴值有一对一的关系。(见下图)在ggplot中可能会破解类似多边形网格的东西,但我自己还没有看到任何这样的实现


请使用
dput()
(不是
str
head
或图片/屏幕截图)共享您的数据样本,以便其他人可以提供帮助。在这里看到更多