我需要绘制一个显示计数的条形图和一个在一个图表中显示速率的折线图,我可以分别做两个,但是当我把它们放在一起时,我的第一层的比例(即geom_bar)与第二层重叠层(即geom_line).
我可以将轴geom_line向右移动吗?
我有一些来自实验的蒸腾数据,我希望在使用R的线图上显示时间序列.我也有一些降水数据,我想在条形图上显示在同一图表上.我已经能够使用R的基本程序来做到这一点,但我想在ggplot中这样做.我到处搜索,我知道设计师不太喜欢用这种方式制作图形所以它很难,但我已经看到它使用两个y轴完成了多个线图/散点图.它可以用折线图和条形图完成吗?
这是我用来制作情节的数据
以下是上图的代码.
attach(summary)
library(Hmisc)
library(scales)
par(mar=c(6.5,4,4,5)+.1)
plot(summary$dates,summary$c_mean_am,type="n",ylim=c(100,350),
main="Stomatal Conductance during experiment",las=1,cex.main=1,
font.lab=2,font.axis=2,cex.axis=0.7,cex.lab=0.8,
ylab=expression('Stomatal conductance'~(m~mol~ m^{2})),,xlab="Date")
lines(dates,c_mean_am,pch=21,cex=0.6,bg="blue",col="blue")
lines(dates,T1_mean_am,pch=21,cex=0.6,bg="yellow",col="yellow")
lines(dates,T2_mean_am,pch=21,cex=0.6,bg="hotpink1",col="hotpink1")
lines(dates,T3_mean_am,pch=21,cex=0.6,bg="orange",col="orange")
lines(dates,T4_mean_am,pch=21,cex=0.6,bg="red",col="red")
with (data = summary , expr = errbar(dates, c_mean_am,
c_mean_am+c_se_am,
c_mean_am-c_se_am,
add=T, pch=21,col="blue",bg="blue",
cex=0.6,cap=0.01,errbar.col="blue"))
with (data = summary , expr = errbar(dates, T1_mean_am,
T1_mean_am+T1_se_am,
T1_mean_am-T1_se_am, add=T,
pch=21,col="yellow",bg="yellow",
cex=0.6,cap=0.01,errbar.col="yellow"))
with (data = summary , expr = errbar(dates, T2_mean_am,
T2_mean_am+T2_se_am,
T2_mean_am-T2_se_am,
add=T, pch=21,col="hotpink1",
bg="hotpink1",cex=0.6,cap=0.01,
errbar.col="hotpink1"))
with (data = summary , expr = errbar(dates, T3_mean_am,
T3_mean_am+T3_se_am,
T3_mean_am-T3_se_am,
add=T, pch=21,col="orange", …Run Code Online (Sandbox Code Playgroud) 下面的代码使用R中的基本绘图函数创建一个帕累托图.如何使用ggplot创建相同的图表?
*我知道有些人会讨厌两个y轴的情节.请不要在这篇文章中包含这个辩论.谢谢
## Creating the d tribble
library(tidyverse)
d <- tribble(
~ category, ~defect,
"price", 80,
"schedule", 27,
"supplier", 66,
"contact", 94,
"item", 33
)
## Creating new columns
d <- arrange(d, desc(defect)) %>%
mutate(
cumsum = cumsum(defect),
freq = round(defect / sum(defect), 3),
cum_freq = cumsum(freq)
)
## Saving Parameters
def_par <- par()
## New margins
par(mar=c(5,5,4,5))
## bar plot, pc will hold x values for bars
pc = barplot(d$defect,
width = 1, space = 0.2, border = …Run Code Online (Sandbox Code Playgroud) 我已经搜索了我的问题的解决方案但是找不到直接回答我问题的解决方案.例如,我已经看到:在ggplot2中组合条形图和折线图(双轴)和在GGPlot和其他几个图形的一个图上组合条形图+线图,当它们接近时,它们并没有完全达到我的目标我到了.
我正在尝试创建一个包含两个图表,一个区域图和一个线图的图表.这两个图共享y轴.我一直在尝试使用长数据帧格式和宽数据帧格式,但我无法使图表工作,同时也产生一个图例.我知道要获得一个图例,人们通常会想要使用长格式并将变量键指定为color =或fill =,但因为我希望每个变量都在一个单独的绘图类型中,所以我认为没办法完成.
我已成功创建了我想要的图表,但它不包含图例,代码看起来很笨重.谁能提供一些指导?请参阅下面的我的尝试.以下数据示例.
尝试1:长格式
library(tidyverse)
growthUR_long %>%
ggplot(aes(x = Date)) +
geom_area(data = (. %>% filter(growthUR_long$Type == "Growth")), aes(y = value), fill = "blue", color = "black") +
labs(x = "Date", y = "Percent") +
geom_line(data = (. %>% filter(growthUR_long$Type == "UR")), aes(y = value), color = "black")
Run Code Online (Sandbox Code Playgroud)
尝试2:宽格式
growthUR_wide %>%
ggplot(aes(x = Date)) +
geom_area(aes(y = Growth), fill = "blue", color = "black") +
labs(x …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个ggplot2图形,该图形显示相互重叠的条形图和折线图。在excel中,这可以通过添加第二个轴来完成。
x轴表示产品类型,条形图的y值应表示收入,而我想将利润率表示为百分比的折线图。折线图和条形图的值应彼此独立,即不存在这种关系。
require(ggplot2)
df <- data.frame(x = c(1:5), y = abs(rnorm(5)*100))
df$y2 <- abs(rnorm(5))
ggplot(df, mapping= aes(x=as.factor(`x`), y = `y`)) +
geom_col(aes(x=as.factor(`x`), y = `y`),fill = 'blue')+
geom_line(mapping= aes(x=as.factor(`x`), y = `y`),group=1) +
geom_label(aes(label= round(y2,2))) +
scale_y_continuous() +
theme_bw() +
theme(axis.text.x = element_text(angle = 20,hjust=1))
Run Code Online (Sandbox Code Playgroud)
上面的图像几乎产生了我想要的。但是,缩放比例不正确-我需要按幅度对1.38和0.23值进行排序,即0.23点应显示在1.38以下。我也不确定如何在右侧添加另一个轴。
I have just started R two days back. I have gone through some basic R tutorials and I am able to plot two dimensional data. I pull data from an Oracle database. Now, I am having problems when I try to merge two graph types (Line and Bar) using secondary axis.
I have no problem, plotting this data on Excel. Following is the plot:
I am unable to plot it on R. I searched some related examples but I …