小编Jam*_*mes的帖子

旋转整个ggplot()而不旋转任何文本R.

我希望旋转整个绘图,轴和所有,但保持轴标签和标题它们是如何,以便它们可以水平读取.

library(ggplot2)
data(mtcars)

ggplot() + geom_point(data=mtcars,aes(x=mpg,y=cyl)) + 
  labs(title = "MPG vs Cylinders",
       x = "", y = "") + 
  theme(plot.title = element_text(size=40),axis.text.x=element_text(size=35),axis.text.y=element_text(size=35))
Run Code Online (Sandbox Code Playgroud)

因此,此代码生成的绘图理想情况下将逆时针旋转30度左右,如下所示: 在此输入图像描述

但是标题应该仍然是水平显示,而不是30度转弯.与轴标签相同(我将绘图放在MS字中并用小绿圈旋转).有什么想法吗?它甚至可能吗?

r rotation ggplot2

4
推荐指数
1
解决办法
1891
查看次数

ggplot根据数据框中的值重新排序堆积条形图

我正在制作带有ggplot2的堆积条形图,其中有关y轴的特定条形排序.

# create reproducible data
library(ggplot2)
d <- read.csv(text='Day,Location,Length,Amount
            1,4,3,1.1
            1,3,1,2
            1,2,3,4
            1,1,3,5
            2,0,0,0
            3,3,3,1.8
            3,2,1,3.54
            3,1,3,1.1',header=T)

ggplot(d, aes(x = Day, y = Length)) + geom_bar(aes(fill = Amount, order = Location), stat = "identity")

ggplot(d, aes(x = Day, y = Length)) + geom_bar(aes(fill = Amount, order = rev(Location)), stat = "identity")
Run Code Online (Sandbox Code Playgroud)

第一个ggplot图按位置顺序显示数据,其中Location = 1最接近x轴,而每个增加值的数据都堆叠在下一个上.

第二个ggplot图以不同的顺序显示数据,但它没有堆叠具有最接近x轴的最高位置值的数据,而下一个最高位置的数据堆叠在距离x轴位置的第二个位置.第一个栏目栏,就像我希望它基于之前的帖子一样.

下一个片段确实以所需的方式显示数据,但我认为这是简单和小型示例数据集的工件.堆栈顺序尚未指定,因此我认为ggplot基于Amount的值进行堆叠.

ggplot(d, aes(x = Day, y = Length)) + geom_bar(aes(fill = Amount), stat = "identity")
Run Code Online (Sandbox Code Playgroud)

我想要的是强制ggplot按照位置值递减的顺序堆叠数据(位置= 4最接近x轴,位置= 3接下来,...,位置= 1位于条形列的最顶部)调用order =或等价的参数.有什么想法或建议吗? …

r bar-chart ggplot2 stacked-chart

3
推荐指数
1
解决办法
2702
查看次数

如何在 R 中定义 abline 线性回归的图形边界

我试图截断 abline 的末端,这实际上只是我的数据的线性回归。

fit1=lm(logy~logx)

> fit1

Call:
lm(formula = logy ~ logx)

Coefficients:
(Intercept)         logx  
     -5.339       -2.115 
Run Code Online (Sandbox Code Playgroud)

logx 被log10(x[1:365]转换的地方。logy 遵循相同的代码。当我用 绘图时abline(fit1,col="red"),我得到了我想要的线条,但线条超出了我最初设置的边界[1:365]。我已经尝试过了par=xpd,但这并没有将线路减少到我想要的限制。我玩过segments()无济于事。也许这是一个line()争论?

编辑这是新的解决方案:

#the following vectors x and y store our data that we want to plot
x<-(1:10)
y<-(10:1)
plot(x,y,type="l",log="xy")
#we want to do a linear regression on our log10 transformed data and add the line to the plot
logy=log10(y[3:8])
logx=log10(x[3:8])
fit1=lm(logy~logx)
#finally, we want the regression line to …
Run Code Online (Sandbox Code Playgroud)

plot r linear-regression

1
推荐指数
1
解决办法
6491
查看次数