Coloring ggplot density plot based on cutoff [duplicate]
This question already has an answer here:
Shading a kernel density plot between two points.
5 answers
Shade density plot to the left of vline?
1 answer
Shade (fill or color) area under density curve by quantile
2 answers
How to shade part of a density curve in ggplot (with no y axis data)
1 answer
I'm trying to make a density plot in ggplot with different colors based on one cutoff. There are a couple questions floating around about how to conditionally color histograms based on a cutoff, and how to color the quantiles on a density plot. However, I haven't found any resources on how to color a density plot given a single cutoff. Here is my code so far:
ggplot(dde_test, aes(x = meanABC)) +
geom_vline(aes(xintercept=quantile(dde_test$meanABC)[4]), color="black", linetype="dashed", size=1) +
geom_density(alpha = 0.7, color = "black", fill = "#cb351e") + #, fill = "#405484"
scale_x_continuous(limits = c(3,12), expand = c(0, 0)) +
scale_y_continuous(limits = c(0,0.3), expand = c(0, 0)) +
xlab("") +
ylab("density") +
theme_bw() +
theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"))
which produces the following plot:
Very simply, I'd like to color everything above the dashed line red, and everything below it blue. I tried putting an if else statement in the fill part of geom_density(), but that didn't work. Any tips would be much appreciated- thank you!
p.s. I'd also like to keep the dashed line black throughout the plot; right now it's blending with the red density- would be great to get pointers on this as well. Apologies if these questions are very basic!
EDIT: I've seen this question before- Shading a kernel density plot between two points. but it's not the same as it isn't using geom_density. It's also coloring between two points, whereas I want to color before and after a single point.
r ggplot2
marked as duplicate by Axeman
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 22 '18 at 23:00
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
|
show 1 more comment
This question already has an answer here:
Shading a kernel density plot between two points.
5 answers
Shade density plot to the left of vline?
1 answer
Shade (fill or color) area under density curve by quantile
2 answers
How to shade part of a density curve in ggplot (with no y axis data)
1 answer
I'm trying to make a density plot in ggplot with different colors based on one cutoff. There are a couple questions floating around about how to conditionally color histograms based on a cutoff, and how to color the quantiles on a density plot. However, I haven't found any resources on how to color a density plot given a single cutoff. Here is my code so far:
ggplot(dde_test, aes(x = meanABC)) +
geom_vline(aes(xintercept=quantile(dde_test$meanABC)[4]), color="black", linetype="dashed", size=1) +
geom_density(alpha = 0.7, color = "black", fill = "#cb351e") + #, fill = "#405484"
scale_x_continuous(limits = c(3,12), expand = c(0, 0)) +
scale_y_continuous(limits = c(0,0.3), expand = c(0, 0)) +
xlab("") +
ylab("density") +
theme_bw() +
theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"))
which produces the following plot:
Very simply, I'd like to color everything above the dashed line red, and everything below it blue. I tried putting an if else statement in the fill part of geom_density(), but that didn't work. Any tips would be much appreciated- thank you!
p.s. I'd also like to keep the dashed line black throughout the plot; right now it's blending with the red density- would be great to get pointers on this as well. Apologies if these questions are very basic!
EDIT: I've seen this question before- Shading a kernel density plot between two points. but it's not the same as it isn't using geom_density. It's also coloring between two points, whereas I want to color before and after a single point.
r ggplot2
marked as duplicate by Axeman
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 22 '18 at 23:00
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
re p.s.: switch the order of the geoms.
– Axeman
Nov 22 '18 at 22:59
There is someggplot
answers if you scroll down in the duplicate linked.
– Axeman
Nov 22 '18 at 23:01
I've seen the one you've linked. None of the answers there are using geom_density; that is a key difference. I'm also not trying to color between two points but rather before/after a single point.
– krc3004
Nov 22 '18 at 23:06
It's also not the same because I'd like to use two different colors; in the one you've linked they only use one. Can you remove the duplicate tag, @Axeman?
– krc3004
Nov 22 '18 at 23:09
They are not usinggeom_density
because you can't (for the coloring at least). You'll need to do some other calculation, usually just callingdensity
outsideggplot
. Added another dupe.
– Axeman
Nov 22 '18 at 23:41
|
show 1 more comment
This question already has an answer here:
Shading a kernel density plot between two points.
5 answers
Shade density plot to the left of vline?
1 answer
Shade (fill or color) area under density curve by quantile
2 answers
How to shade part of a density curve in ggplot (with no y axis data)
1 answer
I'm trying to make a density plot in ggplot with different colors based on one cutoff. There are a couple questions floating around about how to conditionally color histograms based on a cutoff, and how to color the quantiles on a density plot. However, I haven't found any resources on how to color a density plot given a single cutoff. Here is my code so far:
ggplot(dde_test, aes(x = meanABC)) +
geom_vline(aes(xintercept=quantile(dde_test$meanABC)[4]), color="black", linetype="dashed", size=1) +
geom_density(alpha = 0.7, color = "black", fill = "#cb351e") + #, fill = "#405484"
scale_x_continuous(limits = c(3,12), expand = c(0, 0)) +
scale_y_continuous(limits = c(0,0.3), expand = c(0, 0)) +
xlab("") +
ylab("density") +
theme_bw() +
theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"))
which produces the following plot:
Very simply, I'd like to color everything above the dashed line red, and everything below it blue. I tried putting an if else statement in the fill part of geom_density(), but that didn't work. Any tips would be much appreciated- thank you!
p.s. I'd also like to keep the dashed line black throughout the plot; right now it's blending with the red density- would be great to get pointers on this as well. Apologies if these questions are very basic!
EDIT: I've seen this question before- Shading a kernel density plot between two points. but it's not the same as it isn't using geom_density. It's also coloring between two points, whereas I want to color before and after a single point.
r ggplot2
This question already has an answer here:
Shading a kernel density plot between two points.
5 answers
Shade density plot to the left of vline?
1 answer
Shade (fill or color) area under density curve by quantile
2 answers
How to shade part of a density curve in ggplot (with no y axis data)
1 answer
I'm trying to make a density plot in ggplot with different colors based on one cutoff. There are a couple questions floating around about how to conditionally color histograms based on a cutoff, and how to color the quantiles on a density plot. However, I haven't found any resources on how to color a density plot given a single cutoff. Here is my code so far:
ggplot(dde_test, aes(x = meanABC)) +
geom_vline(aes(xintercept=quantile(dde_test$meanABC)[4]), color="black", linetype="dashed", size=1) +
geom_density(alpha = 0.7, color = "black", fill = "#cb351e") + #, fill = "#405484"
scale_x_continuous(limits = c(3,12), expand = c(0, 0)) +
scale_y_continuous(limits = c(0,0.3), expand = c(0, 0)) +
xlab("") +
ylab("density") +
theme_bw() +
theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"))
which produces the following plot:
Very simply, I'd like to color everything above the dashed line red, and everything below it blue. I tried putting an if else statement in the fill part of geom_density(), but that didn't work. Any tips would be much appreciated- thank you!
p.s. I'd also like to keep the dashed line black throughout the plot; right now it's blending with the red density- would be great to get pointers on this as well. Apologies if these questions are very basic!
EDIT: I've seen this question before- Shading a kernel density plot between two points. but it's not the same as it isn't using geom_density. It's also coloring between two points, whereas I want to color before and after a single point.
This question already has an answer here:
Shading a kernel density plot between two points.
5 answers
Shade density plot to the left of vline?
1 answer
Shade (fill or color) area under density curve by quantile
2 answers
How to shade part of a density curve in ggplot (with no y axis data)
1 answer
r ggplot2
r ggplot2
edited Nov 25 '18 at 7:13
Mr. T
4,18791535
4,18791535
asked Nov 22 '18 at 22:57
krc3004krc3004
11
11
marked as duplicate by Axeman
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 22 '18 at 23:00
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
marked as duplicate by Axeman
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 22 '18 at 23:00
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
re p.s.: switch the order of the geoms.
– Axeman
Nov 22 '18 at 22:59
There is someggplot
answers if you scroll down in the duplicate linked.
– Axeman
Nov 22 '18 at 23:01
I've seen the one you've linked. None of the answers there are using geom_density; that is a key difference. I'm also not trying to color between two points but rather before/after a single point.
– krc3004
Nov 22 '18 at 23:06
It's also not the same because I'd like to use two different colors; in the one you've linked they only use one. Can you remove the duplicate tag, @Axeman?
– krc3004
Nov 22 '18 at 23:09
They are not usinggeom_density
because you can't (for the coloring at least). You'll need to do some other calculation, usually just callingdensity
outsideggplot
. Added another dupe.
– Axeman
Nov 22 '18 at 23:41
|
show 1 more comment
re p.s.: switch the order of the geoms.
– Axeman
Nov 22 '18 at 22:59
There is someggplot
answers if you scroll down in the duplicate linked.
– Axeman
Nov 22 '18 at 23:01
I've seen the one you've linked. None of the answers there are using geom_density; that is a key difference. I'm also not trying to color between two points but rather before/after a single point.
– krc3004
Nov 22 '18 at 23:06
It's also not the same because I'd like to use two different colors; in the one you've linked they only use one. Can you remove the duplicate tag, @Axeman?
– krc3004
Nov 22 '18 at 23:09
They are not usinggeom_density
because you can't (for the coloring at least). You'll need to do some other calculation, usually just callingdensity
outsideggplot
. Added another dupe.
– Axeman
Nov 22 '18 at 23:41
re p.s.: switch the order of the geoms.
– Axeman
Nov 22 '18 at 22:59
re p.s.: switch the order of the geoms.
– Axeman
Nov 22 '18 at 22:59
There is some
ggplot
answers if you scroll down in the duplicate linked.– Axeman
Nov 22 '18 at 23:01
There is some
ggplot
answers if you scroll down in the duplicate linked.– Axeman
Nov 22 '18 at 23:01
I've seen the one you've linked. None of the answers there are using geom_density; that is a key difference. I'm also not trying to color between two points but rather before/after a single point.
– krc3004
Nov 22 '18 at 23:06
I've seen the one you've linked. None of the answers there are using geom_density; that is a key difference. I'm also not trying to color between two points but rather before/after a single point.
– krc3004
Nov 22 '18 at 23:06
It's also not the same because I'd like to use two different colors; in the one you've linked they only use one. Can you remove the duplicate tag, @Axeman?
– krc3004
Nov 22 '18 at 23:09
It's also not the same because I'd like to use two different colors; in the one you've linked they only use one. Can you remove the duplicate tag, @Axeman?
– krc3004
Nov 22 '18 at 23:09
They are not using
geom_density
because you can't (for the coloring at least). You'll need to do some other calculation, usually just calling density
outside ggplot
. Added another dupe.– Axeman
Nov 22 '18 at 23:41
They are not using
geom_density
because you can't (for the coloring at least). You'll need to do some other calculation, usually just calling density
outside ggplot
. Added another dupe.– Axeman
Nov 22 '18 at 23:41
|
show 1 more comment
0
active
oldest
votes
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
re p.s.: switch the order of the geoms.
– Axeman
Nov 22 '18 at 22:59
There is some
ggplot
answers if you scroll down in the duplicate linked.– Axeman
Nov 22 '18 at 23:01
I've seen the one you've linked. None of the answers there are using geom_density; that is a key difference. I'm also not trying to color between two points but rather before/after a single point.
– krc3004
Nov 22 '18 at 23:06
It's also not the same because I'd like to use two different colors; in the one you've linked they only use one. Can you remove the duplicate tag, @Axeman?
– krc3004
Nov 22 '18 at 23:09
They are not using
geom_density
because you can't (for the coloring at least). You'll need to do some other calculation, usually just callingdensity
outsideggplot
. Added another dupe.– Axeman
Nov 22 '18 at 23:41