2025/11/16

マンデルブロ集合の彩色方法(6)

07.knit

“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 を用意します。各パラメータを以下の通りです。

  • mandelbrot()関数の中身は 以前の記事 を参照ください。
  • Continuous (smooth) coloring は 以前の記事 を参照にしてください。
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 件のコメント:

コメントを投稿

マンデルブロ集合の彩色方法(6)

07.knit “Rank-Order Mapping”という彩色方法についてテストしてみます。 きっかけ High-Precisi...