Coder Social home page Coder Social logo

Comments (7)

slowkow avatar slowkow commented on August 17, 2024

Thanks for the question! Please post a minimal code example and a figure.

from ggrepel.

frajuegies avatar frajuegies commented on August 17, 2024

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)

The plot is attached as png.
rplot

Thank you for your effort making this package !
Best regards,
Jürgen

from ggrepel.

slowkow avatar slowkow commented on August 17, 2024

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
  )

image

from ggrepel.

frajuegies avatar frajuegies commented on August 17, 2024

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.

slowkow avatar slowkow commented on August 17, 2024

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.

frajuegies avatar frajuegies commented on August 17, 2024

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.

slowkow avatar slowkow commented on August 17, 2024

Thanks for the interesting use case! Feel free to re-open or make a new issue if needed.

from ggrepel.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.