Aantal opmaak aslabels in ggplot2?

Ik teken een vrij eenvoudige grafiek met ggplot2 0.9.1.

x <- rnorm(100, mean=100, sd = 1) * 1000000
y <- rnorm(100, mean=100, sd = 1) * 1000000
df <- data.frame(x,y)
p.new <- ggplot(df,aes(x,y)) +
  geom_point()
print(p.new)

Wat werkt, maar ggplot2 gebruikt standaard wetenschappelijke notatie die niet geschikt is voor mijn publiek. Als ik het labelformaat van de x-as wil wijzigen door het volgende in te voeren:

p.new + scale_x_continuous(labels = comma)

Ik krijg:

Fout in structuur(list(call = match.call(), esthetiek = esthetiek, :
object ‘komma’ niet gevonden

Wat doe ik verkeerd? Ik merk op dat de taal onlangs is gewijzigd van “formatter” naar “labels”. Misschien lees ik de man-pagina verkeerd?

Bewerken: ik las inderdaad de man-pagina verkeerd

Je moet library(scales)laden voordat je dit probeert.


Antwoord 1, autoriteit 100%

Je moet library(scales)laden voordat je dit probeert.


Antwoord 2, autoriteit 7%

Meer in het algemeen kun je een aantal mooie parameters regelen met behulp van het “scales”-pakket. Een van zijn functies is number_format().

library(ggplot2)
library(scales)
p <- ggplot(mpg, aes(displ, cty)) + geom_point()

Voor het opmaken van uw getallen kunt u de functie number_format() gebruiken. Het biedt een aantal leuke mogelijkheden, zoals het regelen van het aantal decimalen (hier 2 decimalen) en je decimaalteken (hier ‘,’ in plaats van ‘.’)

p + scale_y_continuous(
  labels = scales::number_format(accuracy = 0.01,
                                 decimal.mark = ','))

Antwoord 3, autoriteit 3%

Hier is een voorbeeld van het toevoegen van komma’s en decimalen aan ggplot met behulp van scales::comma_format().

In wezen een mooieNum()-stijl van opmaak mogelijk maken.

Seatbelts_df <- as.data.frame(Seatbelts)
ggplot(data=Seatbelts_df, aes(x=Seatbelts_df$drivers, y=Seatbelts_df$DriversKilled, color=factor(Seatbelts_df$law))) +
  geom_jitter(alpha=0.5) +
  theme(plot.title=element_text(face="bold")) +
  labs(title="Amount of Drivers on Road vs Amount of deaths", subtitle = "Dataset from package datasets::Seatbelts", x ="Drivers on Road", y="Amount of Deaths", color="Seatbelt Law?") +
  scale_color_manual(labels = c("Yes", "No"), values = c("blue", "red")) +
  geom_vline(aes(xintercept=mean(Seatbelts_df$drivers)), color="black", linetype="dashed", size=1) +
  scale_x_continuous(
  labels = scales::comma_format(big.mark = ',',
                                 decimal.mark = '.'))

Other episodes