Comments (7)
Thanks for the question! Please post a minimal code example and a figure.
from ggrepel.
Hi,
first of all... my example works, but it does not completely avoid overplotting.
Here is the code
averages <- aggregate(diamonds$price, list(diamonds$cut), mean)
colnames(averages) <- c("CUT_1","PRICE_1")
graph <- ggplot (averages)
graph <- graph + geom_vline(data=averages, aes(xintercept=PRICE_1, color = CUT_1))
graph <- graph + geom_text_repel (data=averages, aes(x=PRICE_1,y=Inf,label=paste ("mean = ",signif(PRICE_1,digits=4),sep=""),color = CUT_1),
size=6)
graph <- graph + geom_histogram(data= diamonds, aes(price, fill = cut),binwidth=10)
plot (graph)
Thank you for your effort making this package !
Best regards,
Jürgen
from ggrepel.
How's this?
library(ggplot2)
library(ggrepel)
averages <- aggregate(diamonds$price, list(diamonds$cut), mean)
colnames(averages) <- c("CUT_1","PRICE_1")
ggplot(averages) +
geom_vline(data=averages, aes(xintercept=PRICE_1, color = CUT_1)) +
geom_histogram(data= diamonds, aes(price, fill = cut),binwidth=10) +
geom_text_repel(
data=averages,
aes(
x = PRICE_1,
y = 350,
label=paste("mean = ",signif(PRICE_1,digits=4),sep=""),
color = CUT_1
),
size=6
)
from ggrepel.
Thank you very much....that Is a nice approach, but the position in y direction is changing with every new plot,..... The plots are defined within a shiny app....
from ggrepel.
Ok, I searched Google for tips about this and found this StackOverflow post:
Based on that post, I came up with the following solution:
library(ggplot2)
library(ggrepel)
averages <- aggregate(diamonds$price, list(diamonds$cut), mean)
colnames(averages) <- c("CUT_1","PRICE_1")
p <- ggplot(averages) +
geom_vline(data=averages, aes(xintercept=PRICE_1, color = CUT_1)) +
geom_histogram(data= diamonds, aes(price, fill = cut),binwidth=10)
x <- ggplot_build(p)$data
p + geom_text_repel(
data=averages,
aes(
x = PRICE_1,
# Place the text at 90% of the maximum y value in the plot.
y = max(x[[2]]$y) * 0.9,
label=paste("mean = ",signif(PRICE_1,digits=4),sep=""),
color = CUT_1
),
size=6
)
from ggrepel.
Thank you very much.... I was not at my desk to search the hint myself and you are reacting really fast .....
. Sorry for that
Best regards, Jürgen
from ggrepel.
Thanks for the interesting use case! Feel free to re-open or make a new issue if needed.
from ggrepel.
Related Issues (20)
- Function to print ggplot2 code for final round of manual adjustment HOT 3
- ggrepel `xlim`doesn't respect scales HOT 1
- Change the starting point of the segments HOT 2
- ggrepel does not work with for loop HOT 7
- valgrind issue about NA vs NaN HOT 1
- Error when min.segment.length=Inf and force=0 HOT 7
- Duplicate text labels after ggbreak HOT 9
- Improve description of max.overlaps argument HOT 1
- Feature request / offer: `element_text_repel()`
- Obtain the final position of the text after repel HOT 6
- y = Inf does not work in current version of geom_label_repel HOT 4
- Texts created using geom_text_repel() in ggplot2 disappear when the plot is flipped using coord_flip(). HOT 4
- How to extract labels shown by ggrepel HOT 3
- Nudge_x argument not working properly HOT 4
- Remove dependency on `grid` for webR HOT 5
- labels do not appear in 0.9.5 HOT 13
- geom_text_repel error in replace_null HOT 8
- Error in geoms: could not find function "replace_null" HOT 2
- Fail to show with coord_flip() HOT 2
- Labels do not appear in version 0.9.5 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ggrepel.