“Rank-Order Mapping”という彩色方法についてテストしてみます。
きっかけ
High-Precision Deep Zoomさんのサイトで見つけました。
参考文献:Rank-Order Mapping
これは多分、以下のようなことを言っているような気がします。
- 反復回数 (iter) のリストを昇順ソートする
- 昇順ソートしたリストを以下のようになるようマッピング
- 最小値をu=0
- 最大値をu=1
- 中央値をu=0.5
- 第一四分位値をu=0.25
- 第三四分位値をu=0.75
上記処理は dplyr::percent_rank(x)
関数で実現できます。
やってみる
まずは、マンデルブロ集合を計算したデータ m1
を用意します。各パラメータを以下の通りです。
library(tidyverse)
### マンデルブロ集合データ m1 を用意 ###
m1 <- mandelbrot(
center = -0.75+0.0i,
radius = 1.5,
mesh.size = 720,
max.iteration = 50,
escape.radius = 17
)
### Continuous (smooth) coloring ###
m1 <- m1 %>%
mutate(z=z^2+c, iter=iter+1) %>%
mutate(z=z^2+c, iter=iter+1) %>%
mutate(iter=iter-log10(log10(Mod(z)))/log10(2))
用意したデータ m1 に Rank-Order Mapping
を適用します。
m1 %>%
mutate(u=percent_rank(iter)) %>% ### Rank-Order Mapping ###
ggplot() +
aes(x=Re(c), y=Im(c), fill=u) +
geom_raster() +
scale_fill_gradientn(colors=rainbow(7), na.value='black') +
coord_fixed(ratio=1) +
labs(title='Rank-Order Mapping')
うまくいったようです。色の偏りが少なく、どの色も満遍なく使用されているようです。
0 件のコメント:
コメントを投稿