3

scale_colour_gradient/scale_colour_gradient2 を使用して、散布図の点の色のグラデーションを作成します。グラデーションは、次のように、赤から濃い赤、または黒から赤に設定されます。

ggplot(iris) + geom_point(aes(x=Sepal.Width, y=Sepal.Length, colour=Sepal.Length)) + scale_colour_gradient(low="red", high="darkred")

scale_colour_gradient比率を表すため、対数スケールに設定することがよくあります。私の質問は、スケールのポイント間のコントラストを上げるにはどうすればよいですか? たとえば、スケールの異なる部分の違いをそうしますか? 私の場合、スケールは常に連続しています(実数)。これに関する関連するポイントがあれば役立ちます。

4

1 に答える 1

5

黒から赤、または赤から暗赤色では、使用できる色空間がほとんどないようです。16 進数コードを使用して、低設定と高設定に特定の色を割り当て、黒の背景を追加してコントラストを向上させることができます。例えば:

+ scale_colour_gradient2(low="#22FF00", mid="white", high="#FF0000", midpoint=median(iris$Sepal.Length)) + theme(panel.grid=element_blank(), panel.background=element_rect(fill="black"))

より多くのコントラストが得られます。を使用していることに注意してくださいscale_color_gradient2。これにより、中間色を設定し、それをデータの要約統計に帰することができます (ここでは、中央値を使用しました)。また、スペクトルの両端にある 2 つの色も使用しました。上記をコードに追加すると、次のようになります。

ハイコントラスト散布図

ただし、満足するまで特定の色をいじる以外に ( http://www.rapidtables.com/web/color/RGB_Color.htmiwanthueは色を選択するための優れたリソースです)、存在するかどうかはわかりません。非常に複雑な色の虹を作成することなく、全体でコントラストが最大になるようにグラデーションを設定する方法。おそらくご存知のように、データ内の任意の 2 つのポイント間のコントラストは、それらのポイントの値の差に正比例するため、グラデーションの異なるロケール内でその関係を変えることはおそらく望ましくなく、私の知る限り不可能です。 ggplot2で。

編集: コントラストを向上させる別の方法は、変数自体ではなく、目的の変数 (この例では Sepal.Length) のランク順で色付けすることです。これにより、分位点間の距離を等しくすることでデータを「分散」させる均一な分布が作成されます。ただし、これはデータの誤解を招く視覚化を生成する可能性があります。データが大きく歪んでいる場合、一部の同一またはほぼ同一の値がかなり対照的な色で表される可能性があります。したがって、注意して使用してください。

上記と比較してください:

iris <- iris[with(iris, order(Sepal.Length)),]
iris$rank <- 1:150
ggplot(iris) + geom_point(aes(x=Sepal.Width, y=Sepal.Length, colour=rank)) + scale_colour_gradient2(low="#22FF00", mid="white", high="#FF0000", midpoint=median(iris$rank)) + theme(panel.grid=element_blank(), panel.background=element_rect(fill="black"))

ランク順データによる色付きのハイコントラスト散布図

また、赤から緑への色は、可能な限り色覚異常の安全性が最も低い色の選択であることも認識しています. したがって、スペクトルに赤や緑が含まれないように色を選択する必要があります。

于 2013-07-06T20:56:57.067 に答える