12

これは、この質問の続きであり、垂直グリッド線を抑制しようとしていました

学習者によって提供された解決策は、scale_x_continuous(breaks = NA)を追加することでしたが、これには、x軸ラベルも抑制するという副作用もありました。手でラベルを書き戻すのはとてもうれしいですが、ラベルをどこに置くべきかを理解する方法がわかりません。

もう1つのオプションは、すべてのグリッド線を抑制し(opts(panel.grid.major = theme_blank())などを使用)、主要な水平グリッド線だけを描画することです。繰り返しますが、ここでの問題は、geom_hline()に提供するプロットのブレークがどのようになっているのかを把握する方法です。

したがって、基本的に、私のオプションは次のとおりです。

  1. 垂直グリッド線とx軸ラベルを抑制し(scale_x_continuous(breaks = NA)を使用)、x軸ラベルをに追加し直します。
  2. すべてのグリッド線を抑制し(opts(panel.grid.major = theme_blank())を使用)、geom_hline()を使用して主要な水平グリッド線を追加し直します。

2つのオプションは次のとおりです。

library(ggplot2)

data <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4))

# suppressing vertical gridlines and x-axis labels
# need to re-draw x-axis labels
ggplot(data, aes(x, y)) +
  geom_bar(stat = 'identity') +
  scale_x_continuous(breaks = NA) +
  opts(
    panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'),
    panel.grid.minor = theme_blank(),
    panel.background = theme_blank(),
    axis.ticks = theme_blank()
  )

# suppressing all gridlines
# need to re-draw horizontal gridlines, probably with geom_hbar() 
ggplot(data, aes(x, y)) +
  geom_bar(stat = 'identity') +
  scale_x_continuous(breaks = NA) +
  opts(
    panel.grid.major = theme_blank(),
    panel.grid.minor = theme_blank(),
    panel.background = theme_blank(),
    axis.ticks = theme_blank()
  )
4

5 に答える 5

6

コメントのコードがうまく表示されないので、これを回答として投稿しています。あなたはこのようなことをして、手動でラベルを追加することができますgeom_text()

ggplot(data, aes(x, y)) +
        geom_bar(stat = 'identity') +
        scale_x_continuous(breaks = NA) +
        opts(
                panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'),
                panel.grid.minor = theme_blank(),
                panel.background = theme_blank(),
                axis.ticks = theme_blank()
        )+
        geom_text(aes(label = x, y = -.3))
于 2010-04-21T19:28:07.347 に答える
2

上記の回答は、ggplot2バージョン0.9.2.1以降では機能しません。幸いなことに、別の質問への回答として説明されているように、これを行うためのより簡単な方法があります:https ://stackoverflow.com/a/8992102/800044 。

于 2012-10-22T03:12:17.757 に答える
1

この編集をgrob直接行うことができます。試してみてください。

grid.remove(gPath("panel.grid.minor.x.polyline"),grep=T)
grid.remove(gPath("panel.grid.major.x.polyline"),grep=T) 

それはあなたの垂直線を取り除きます。ggplotが出力されたときにのみ機能すると思うので、関数内で使用するのに問題があります。

ただし、それが当てはまらず、グラフィックが必要な場合は、それが機能します。

于 2012-03-15T14:47:43.577 に答える
0

さて、私はこの問題をグーグルしながらこの解決策を見つけました。まだ試していません。

http://wiki.stdout.org/rcookbook/Graphs/Axes%20(ggplot2)/

少し下にスクロールする必要があります。

一番、

フェリックス

于 2012-05-13T21:17:07.263 に答える
0

2020年にこれを調べている人のために、ここでggExtraライブラリからremoveGrid関数の形式で解決策を見つけました。rdrr.io> removeGrid

ggplot2バージョン3.3.0およびggExtraバージョン0.9で動作することをテストし、グリッド線なしで軸ティックを取得しました。

于 2020-07-17T14:46:42.923 に答える