Tworzę wykres słupkowy, dla którego słupki wystarczają jako wskazania poziomego (x) umieszczenia, więc chciałbym uniknąć rysowania zbędnych pionowych linii siatki.
Rozumiem, jak stylizować drugorzędne i główne linie siatki w opts (), ale do końca życia nie mogę wymyślić, jak wyłączyć tylko pionowe linie siatki.
library(ggplot2)
data <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4))
ggplot(data, aes(x, y)) +
geom_bar(stat = 'identity') +
opts(
panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'),
panel.grid.minor = theme_line(colour = NA),
panel.background = theme_rect(colour = NA),
axis.ticks = theme_segment(colour = NA)
)
W tym momencie wygląda na to, że będę musiał stłumić wszystkie linie siatki, a następnie narysować je z powrotem za pomocą funkcji geom_hline (), co wydaje się być rodzajem bólu (również, nie jest do końca jasne, jak mogę znaleźć tik / główne pozycje linii siatki do podania do geom_hline ().)
Wszelkie myśli będą mile widziane!
Please use breaks = NULL to remove breaks in the scale. (Deprecated; last used in version 0.8.9)
scale_x_discrete(breaks = NULL)
jest tym, który ma być używany, gdy zmienna x jest dyskretna.Od wersji 0.9.2 ggplot2 stało się to znacznie łatwiejsze przy użyciu „motywów”. Możesz teraz przypisać motywy oddzielnie do panel.grid.major.x i panel.grid.major.y, jak pokazano poniżej.
# simulate data for the bar graph data <- data.frame( X = c("A","B","C"), Y = c(1:3) ) # make the bar graph ggplot( data ) + geom_bar( aes( X, Y ) ) + theme( # remove the vertical grid lines panel.grid.major.x = element_blank() , # explicitly set the horizontal lines (or they will disappear too) panel.grid.major.y = element_line( size=.1, color="black" ) )
Wynik tego przykładu jest dość brzydki, ale pokazuje, jak usunąć pionowe linie, zachowując poziome linie i znaczniki osi X.
źródło
Error: stat_count() must not be used with a y aesthetic.
Pozostaje ci tylko punkty danych:
ggplot(out, aes(X1, X2)) + geom_point() + scale_x_continuous(breaks = NULL) + scale_y_continuous(breaks = NULL) + opts(panel.background = theme_blank()) + opts(axis.title.x = theme_blank(), axis.title.y = theme_blank())
źródło
Kopiowanie mojej odpowiedzi z pokrewnego wątku,
źródło
Opcja 1:
data_df <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4)) ggplot(data_df, aes(x, y)) + geom_bar(stat = 'identity') + theme(panel.background = element_rect(fill = "white"))
Opcja 2:
data_df <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4)) ggplot(data_df, aes(x, y)) + geom_bar(stat = 'identity') + theme( panel.grid.major.x = element_blank(), panel.grid.minor.x = element_blank(), panel.grid.major.y = element_blank(), panel.grid.minor.y = element_blank() )
źródło