【メモ】20200823_ほしい鉱物リスト

■フローライト(蛍石

化学式:CaF2(フッ化カルシウム)

備考:ブラックライトを当てると異なる色に光る

 

■カルサイト(方解石)

化学式:CaCO3(炭酸カルシウム)

備考:複屈折

 

■ラリマー(ソーダ珪灰石)

化学式:Ca2NaSi3O8(OH)

備考:海のような模様

 

■ストロベリークォーツ(苺水晶)

化学式:SiO2+(二酸化ケイ素)

備考:水晶に混入した物質によって赤く見える水晶

 

ラピスラズリ(瑠璃)

化学式:(Na,Ca)8(AlSiO4)6(SO4,S,Cl)2

備考:フェルメール青いターバンの少女」に使用

 

ビスマス結晶

化学式:Bi(ビスマス

備考:美しい虹色。きらファンのエトワリウム

 

オブシディアン(十勝石、黒曜石)

化学式:SiO2(二酸化ケイ素)、Al2O3(酸化アルミニウム

備考:火山岩

 

ムーンストーン(月長石)

化学式:KAlSi3O8

備考:シラー効果

 

 

★天然石・鉱物・隕石・化石などの展示即売会「ミネラルマルシェ」

https://www.mineralshow.net/

 

 

 

【EXCEL】マップ作成方法(3Dマップ)

EXCELにて、「3Dマップ」という機能を使えば容易にデータをマッピングして、表示することができます。

(私の環境は、EXCEL 2016です。)

 

初めて使うと戸惑うかと思いますが、一度簡単な例で作成してとりあえず動かしてみるがよいかなと思います。

とりあえず、項目1~5.1までやって、項目5.2以降はより遊びたいときに直感でテキトーにいじればよいかなと思います。

 

■目次

 ■参考までに

 ■マップ作成方法

  1. 挿入
  2. アドオン追加
  3. 3Dマップ起動
  4. データ入力/更新
  5. 設定
   5.1 フィールドの追加
   5.2 視覚エフェクト
   5.3 フィルター
   5.4 レイヤーのオプション
   5.5 マップ表示
   5.6 挿入
   5.7 テーマ
   5.8 時間の設定について
   5.9 新しいシーン→新しいカスタムの地図
  6. その他

 

■参考までに

※慣れてない人にありそうな困りごとを記載しておきます。(私が使用し始めた際にあったことです。)

※ 下記1~3について、最初のうちは、カスタムの地図、シーン、レイヤーを複数作ることはないかなと思うので、慣れないうちは気にしなくてもよいかなと。。

※よく分からなくなってきたら、バックアップを取って最初からやってみるがよいのかもです。

1. カスタムの地図がたくさん作られてしまった。

 ⇛カスタムの地図は、デフォルトの地図の代わりに任意の画像を地図にすることができるものです。

  作った覚えがなければ削除するでよいです。

  この時、「これを削除すると元に戻れません。また、他のシーンやツアーに影響を与える可能性があります。続けますか?」とメッセージが出てきます。

  これは、他のシーン(EXCELでいうところのシートみたいなもの)でもし使われていたら、影響を与えます=そのシーンからもカスタムの地図が削除されてしまいます、みたいな意味です。

2. シーンがたくさん作られてしまった。

 ⇛シーンは、EXCELでいうところのシートみたいなものです。

  こちらも作った覚えがなければ削除するでよいです。

3. レイヤーがたくさん作られてしまった。

 ⇛レイヤーは、マップ表示の設定を複数持っておくみたいなものです。

  こちらも作った覚えがなければ削除するで良いです。

 

<下記説明用のデータの例>

経度 緯度 市区町村 人口(男) 人口(女) 時間
141.354389 43.062083 札幌市 913,077 1,039,271 2018/1/1
140.728917 41.768667 函館市 119,518 143,001 2018/1/1
142.365 43.770639 旭川市 158,223 181,988 2018/1/1
141.354389 43.062083 札幌市 913,799 1,041,658 2019/1/1
140.728917 41.768667 函館市 117,919 141,029 2019/1/1
142.365 43.770639 旭川市 156,846 180,546 2019/1/1
141.354389 43.062083 札幌市 915,342 1,043,971 2020/1/1
140.728917 41.768667 函館市 116,270 139,038 2020/1/1
142.365 43.770639 旭川市 155,194 178,876 2020/1/1

この情報は北海道のオープンデータを利用しています。

(北海道オープンデータ CC-BY4.0(https://creativecommons.org/licenses/by/4.0
/deed.ja))

経緯度はwikipedeaの情報を使用しています。

 

■マップ作成方法

1. 挿入

リボンから「挿入」→「3Dマップ」→「3D Mapsを開く」を押下します。

f:id:lm4183:20200823044416p:plain

 

2. アドオン追加

初めて使用する場合は、アドオンするか聞かれると思います。その場合は、アドオンして下さい。

 

3. 3Dマップ起動

3D Mapsのウィンドウが開きます。

Excelにデータを入れていた場合、自動的に反映されます。

f:id:lm4183:20200823044515p:plain

 

4. データ入力/更新

データを入力、更新する場合は、元のExcelシートに戻ってデータを入力、更新します。

その後、3D Mapsのウィンドウにて、データの更新を押下します。

f:id:lm4183:20200823044337p:plain

 

5. 設定

レイヤーウィンドウにて、自分の好みに設定を行います。

下図のウィンドウが表示されない場合は、リボンの表示にある「レイヤーウィンドウ」を押下。

f:id:lm4183:20200823043636g:plain

5.1 フィールドの追加

各項目の「フィールドの追加」により、Excelデータを割り当てます。

押下するとExcelシートの項目(表のヘッダ)が表示されるので、そこから選択します。

 

[1] 場所:

割り当てたデータを使って地図上のプロット位置です。

データ内容をプルダウンから選択します。

※経緯度や市区町村名から地図上にプロットできます。

※例えば、緯度/経度のチェックボックスをONにすれば、経緯度のデータを使用して地図上にプロットされ、市区町村名のチェックボックスをONにすれば、市区町村名のデータを使用して地図上にプロットされます。

 

[2.1] 高さ:

プロットのグラフの高さです。

※高さの計算は、合計、平均、データの個数(空白でない)、データの個数(個別)、最大値、最小値、集約なしから選択できます。

 

[2.2] サイズ:

プロットのサイズ(円の大きさ)です。

 

[2.3] 値:

プロットの色相に対応します。

 

[3] 分類:

本分類を設定しておくことで、分類ごとに色を変えることができます。

 

[4] 時間:

好きな時間(日付/時刻)でのプロットを見ることができます。また、アニメーションで表示することができます。

 ※Excelデータ上で、正しく日付/時刻を入力しておく必要があります。(例えば、Excel的に、2020/1/1はOKで、2020年はNGとなります。NGの場合は、フィールドの追加ができないです。)

 

[4(追加)] 時間:

時計マークのところにプルダウンがあり、時間変化によるプロットの表示方法を選択できます。

・データが少しの間表示されます

・データが時間を追って累積表示されます

・データは置き換えられるまでそのままです

 

(補足)

※[2.1]高さ/[2.2]サイズ/[2.3]値の計算は、合計、平均、データの個数(空白でない)、データの個数(個別)、最大値、最小値、集約なしから選択できます。

※[2.1]高さ/[2.2]サイズで複数のデータを設定すると、その複数のデータが分類となり、[3]分類を設定できません。

 もし両方設定できてしまうと、[2.1]高さ/[2.2]サイズによる分類と、[3]分類による分類で競合してしまうためだと思います。

 

5.2 視覚エフェクト

プロットデータの視覚エフェクトを設定します。

 

[1] 視覚エフェクトを積み上げ縦棒に変更:

データの値に応じて高さが変わります。

※[2.1]高さで複数のデータが割り当てると、高さが積み上げられます。

<例>

f:id:lm4183:20200823062428p:plain

 

[2] 視覚エフェクトを集合縦棒に変更:

データの値に応じて高さが変わります。

※[2.1]高さで複数のデータが割り当てると、各データが横に並びます。

<例>

f:id:lm4183:20200823062442p:plain

 

[3] 視覚エフェクトをバブルに変更:

データの値に応じて円のサイズが変わります。

※[2.2]サイズで複数のデータが割り当てると、円グラフのように円の中身が分割されます。

<例>

f:id:lm4183:20200823062502p:plain

 

[4] 視覚エフェクトをヒートマップに変更:

データの値に応じて色相が青⇔赤に変わります。

※[2.3]値で複数のデータが選択できたりしますが、よく分からないグラフになります。(そもそもヒートマップのグラフで複数のデータを選択する意味も分からないですが。。)

<例>

f:id:lm4183:20200823062620p:plain

 

5.3 フィルター

すみません、使ったことないので分かりません。

 

5.4 レイヤーのオプション

プロットに対する表示方法を変更できます。

下記よく分かってない機能については、すみません、省略してます。

 

[1] 高さ/太さ:

言葉通り、高さ(サイズ)/太さを変えられます。

現在の倍率をロックのチェックをONにすると、地図を拡大縮小してもプロットの大きさが変化しなくなります。

不透明度は、これも言葉通りです。数値を下げると透明になります。

 

[2] 色:

各分類に対して、色を設定できます。

 

[3] カラースケール:

色相の範囲を変えられます。

 

[4] 影響半径:

円の半径を変えられます。

 

[5] ビジュアル集計:

合計/平均が選択できます。

おそらく、各プロットが重なった時に合計して表示するか、平均して表示するかの違いだと思われます。(下図の例のようになります。)

<例>

    合計の場合          平均の場合

f:id:lm4183:20200823050840p:plain  f:id:lm4183:20200823050833p:plain

 ※違いがはっきりするよう半径を大きくしてます。

 

[6] 色の設定:

標準/ユーザー設定が選択できます。

ユーザー設定を選択すれば自分で色を決定できます。

 

5.5 マップ表示

マップの表示方法を変える設定についてです。

f:id:lm4183:20200823051829p:plain

 

[1] マップラベル:

都市名などの表示/非表示を切り替えます。

f:id:lm4183:20200823052234p:plain

 

[2] 平面マップ:

3D/2D(平面)を切り替えます。

f:id:lm4183:20200823052556p:plain

 

[3] 場所の検索:

場所の名前を入力して検索すると、その場所に移動します。

f:id:lm4183:20200823052815p:plain

 

5.6 挿入

マップ上に2-Dグラフ、テキストボックス、凡例を挿入できます。

消したいときは、選択してDeleteキーで消えます。

f:id:lm4183:20200823053511p:plain

 

5.7 テーマ

テーマから地図の種類を選択できます。

白地図や下記のような写真の地図などがあります。

f:id:lm4183:20200823053951p:plain

 

5.8 時間の設定について

[1] タイムライン:

下記タイムラインにより、表示する日時のデータを変えられます。

▶を押下するとオートで日時が進みます。

下記が表示されない場合は、リボンのタイムラインを押下すると表示されます。

f:id:lm4183:20200823054427p:plain

 

[2] 日付と時刻:

リボンの日付と時刻をONにすると、下図の左上のように日付と時刻を表示されます。

f:id:lm4183:20200823054907p:plain

ダブルクリックすると、下記のように表示形式を変更できます。

f:id:lm4183:20200823055113p:plain

[3] シーンのオプション:

シーンについて設定できます。

f:id:lm4183:20200823054637p:plain

[3.1] シーンの長さ(秒):

タイムラインが終了するまでの長さです。

 

[3.2] 切り替え効果の再生時間(秒):

日付が変わりデータが変更される際の切り替え効果の再生時間です。

  

[3.3] 開始日/終了日、速度:

タイムラインの範囲です。

また、速度は、再生速度(時間変化の速度)です。

 

5.9 新しいシーン→新しいカスタムの地図

背景を地図でなく、任意の画像に変更できる。

経緯度は、画像の範囲に合わせて設定する。

下記例のようになります。

f:id:lm4183:20200823063750p:plain

 

6. その他

3D Mapsには、ビデオの作成など他にも機能ありますが省略します。

気が向いたら更新します。

 

【数学】k-means法のプログラム

k-means法のプログラムをMATLABで作成したので、参考までに。


k-means方とは何かについては、下記記事を参照。
lm4183.hateblo.jp
下記記事も本プログラムを使用して作成しました。
lm4183.hateblo.jp

■kmeans法のメイン関数
初期値は、各データに対して、ランダムにクラスタを割り当てますが、
自分で決めた初期値を引数に与えてやることもできます。
「【数学】k-means法_日本の市区町村を47都道府県に再割り当て」でも各都道府県の割り当てgを初期値として自分で決めています。

% k-means法
%% 引数
% x : データ
% k : クラスタ数
% str : (省略可)初期値 'v':クラスタ中心、'g':クラスタ番号
% var : (省略可)
%% 戻り値
% g : クラスタ番号
% v : クラスタ中心
% cnt : 実行数
% d : 距離
%% 関数
function [g,v,cnt,d] = Calc_Kmeans(x,k,str,var)
    cntMax = 1000;
    
    %% 初期化
    if nargin >= 3
        switch str
            case 'g'
                g(1,:,1) = var;
            case 'v'
                d(:,:,1) = Dist_Euclid(x,var);
                g(1,:,1) = Cluster_Argmin(d(:,:,1));
            otherwise
                g(1,:,1) = randi([1 k],1,size(x,2));
        end
    else
    	g(1,:,1) = randi([1 k],1,size(x,2));
    end
    
    %% ループ
    for cnt = 1:cntMax
       %% クラスタ中心を更新
        v(:,:,cnt) = Center_Update(x,g(1,:,cnt),k);
        
       %% 距離を演算
        d(:,:,cnt) = Dist_Euclid(x,v(:,:,cnt));

       %% 割り当て
        g(1,:,cnt+1) = Cluster_Argmin(d(:,:,cnt));
        
       %% 終了判定
        if Judge(g(1,:,cnt+1),g(1,:,cnt))
            break
        end
    end
end


クラスタ中心を更新

% クラスタ中心を更新
%% 引数
% x : データ
% g : クラスタ番号
% k : クラスタ数
%% 戻り値
% v : クラスタ中心
%% 関数
function v = Center_Update(x,g,k)
    v = zeros(size(x,1),k);
    
    for j = 1:k
        v(:,j) = mean(x(:,g==j),2);
    end
end


ユークリッド距離を演算

% ユークリッド距離を演算
%% 引数
% x : データ
% v : クラスタ中心
%% 戻り値
% d : 距離
%% 関数
function d = Dist_Euclid(x,v)
    d = zeros(size(v,2),size(x,2));
    
    for i = 1:size(x,2)
        for j = 1:size(v,2)
            d(j,i) = sqrt((x(:,i)-v(:,j))'*(x(:,i)-v(:,j)));
        end
    end
end


■割り当て(最小値)

% 割り当て(最小値)
%% 引数
% d : 距離
%% 戻り値
% g1 : 距離の最小値
% g2 : 距離の最小値となる元(arg min)
%% 関数
function g2 = Cluster_Argmin(d)
    [g1,g2] = min(d);
end


■終了判定
クラスタ数が減ることがあるため、割り当てられないと"nan"となる。
そのため、isnan関数にてnanも考慮する。

% 終了判定
%% 引数
% g1 : クラスタ番号
% g2 : クラスタ番号(old)
%% 戻り値
% flg : 終了判定結果
%    false:終了しない
%    true:終了する
%% 関数
function flg = Judge(g1,g2)
    if isnan(g1)==isnan(g2)
        flg = all(g1(not(isnan(g1)))==g2(not(isnan(g1))));
    else
        flg = false;
    end
end


■(参考)使用例

clear;

k = 5;    %クラスタ数
x = randi([1 3],2,1000)*5+randn(2,1000);

%% ----k-means法----
[g,v,cnt] = Calc_Kmeans(x,k);

%% ----プロット----
t = cnt;    % 最終結果を表示

% 色を設定
cx1 = hsv2rgb([(0:k-1)/k;ones(1,k)*0.6;ones(1,k)*1.0]');
cx2 = hsv2rgb([(0:k-1)/k;ones(1,k)*0.6;ones(1,k)*0.6]');
cv1 = hsv2rgb([(0:k-1)/k;ones(1,k)*1.0;ones(1,k)*1.0]');
cv2 = hsv2rgb([(0:k-1)/k;ones(1,k)*1.0;ones(1,k)*0.6]');

cla reset
hold on;
for j=1:k
    index = g(1,:,t)==j;
    scatter(x(1,index),x(2,index),5,...
        'MarkerFaceColor',cx1(j,:),...
        'MarkerEdgeColor',cx2(j,:));
    scatter(v(1,j,t),v(2,j,t),30,...
        'MarkerFaceColor',cv1(j,:),...
        'MarkerEdgeColor',cv2(j,:));   
end
hold off;

【数学】k-means法とは

グループ化(クラスタリング)には、様々な手法がありますが、k-means法とは、その中でも単純な手法です。


アルゴリズム
1. 各データに対して、ランダムにクラスタを割り当てる。
2. 各クラスタに対して、データの中心(クラスタ中心)を算出する。
3. 各データと各クラスタ中心の距離を算出し、最も距離が近いクラスタ中心と同じクラスタに再度割り当てる。
4. 2と3を繰り返し実施し、割り当てが変化しなくなった時に終了する。


アルゴリズムの具体的説明
①変数の定義
記号、ベクトルの要素の割り当てなどは、下記の限りではありません。(例えば、記号はxでなくてyでもよいし、gなんてものを用意しないでベクトルxの要素に足してもよい。私のやりやすいようにやってます。)

<変数>

\quad
\begin{align}
\boldsymbol{x}& \mbox{:データ} \\
\boldsymbol{v}& \mbox{:クラスタ中心} \\
d& \mbox{:データとクラスタ中心の距離} \\
g& \mbox{:各データに対してのクラスタ番号} \\
\end{align}
f:id:lm4183:20200822185141p:plain
 
アルゴリズム
1. 各データに対して、ランダムにクラスタを割り当てる。
1.1. データを取得する。
当然ですが、クラスタリングするにはデータが必要です。
ここでは例として、下図のように\boldsymbol{x_1}\mbox{・・・}\boldsymbol{x_6}のデータがあったとします。
f:id:lm4183:20200822213241p:plain

1.2. 各データに対して、ランダムにクラスタを割り当てる。
下図のように、各データ\boldsymbol{x}に対して、ランダムにクラスタ番号を割り当てます。
※下図の例では、\boldsymbol{x_1},\boldsymbol{x_2}クラスタ1、\boldsymbol{x_3}\boldsymbol{x_6}クラスタ2となっています。

また、各データ\boldsymbol{x}クラスタ番号の情報は、各クラスタgが持つこととします。
※例えば、\boldsymbol{x_1}クラスタ1であるので、\boldsymbol{x_1}に対応したg_1は1となっています。
f:id:lm4183:20200822213605p:plain


2. 各クラスタに対して、データの中心(クラスタ中心)を算出する。
クラスタに対して、データ\boldsymbol{x}の中心(クラスタ中心)\boldsymbol{v}を算出します。
f:id:lm4183:20200822222613p:plain
クラスタ中心は、一般的には相加平均(一般的に平均と呼ばれるもの)で計算します。
数学っぽく式で表せば下記となります。

\begin{align}
\quad\boldsymbol{v} &= \cfrac{1}{N}\sum_{\boldsymbol{x}\in X} \boldsymbol{x}\\
\quad where\\
\quad n &= \mbox{クラスタに含まれる}\boldsymbol{x}\mbox{の数}\\
\quad X &= \mbox{クラスタに含まれる}\boldsymbol{x}\mbox{の集合}
\end{align}

例えば、クラスタ1の場合は、クラスタ1に含まれる\boldsymbol{x_1},\boldsymbol{x_2}からクラスタ中心\boldsymbol{v_1}を計算します。

\quad
\begin{align}
\boldsymbol{v_1} = \cfrac{1}{2}(\boldsymbol{x_1}+\boldsymbol{x_2})
\end{align}


3. 各データと各クラスタ中心の距離を算出し、最も距離が近いクラスタ中心と同じクラスタに再度割り当てる。
各データ\boldsymbol{x}と各クラスタ中心\boldsymbol{v}の距離を算出し、最も距離dが近いクラスタ中心と同じクラスタに再度割り当てます。

例えば、下図のように\boldsymbol{x_6}について考えます。
f:id:lm4183:20200822223319p:plain
データ\boldsymbol{x_6}と各クラスタ中心\boldsymbol{v_1},\boldsymbol{v_2}との距離をそれぞれd_{61},d_{62}とした時、図のようにd_{61} < d_{62}だったとします。(\boldsymbol{x_6}\boldsymbol{v_1}の方が近いとします。)
この場合、データ\boldsymbol{x_6}クラスタ1に割り当て直します。

全データに対して行い、本例の場合、下図のよう\boldsymbol{x_1},\boldsymbol{x_2},\boldsymbol{x_6}クラスタ1、\boldsymbol{x_3},\boldsymbol{x_4},\boldsymbol{x_5}クラスタ2と割り当て直されます。
f:id:lm4183:20200822223328p:plain


4. 2と3を繰り返し実施し、割り当てが変化しなくなった時に終了する。
2と3を繰り返すと、いずれ収束して、割り当てが変化しなくなります。(アルゴリズムの作り方によっては例外あるかもですが。。)
割り当てが変化しなくなった時に終了となります。

本例だと、「2. 各クラスタに対して、データの中心(クラスタ中心)を算出する。」を再度行うと下図のようになり、これ以上クラスタ中心が変化しなくなります。
f:id:lm4183:20200822225535p:plain

以上、無事にクラスタリングされました。

ただ、よく言われるデメリットとして、クラスタの初期割り当てによっては、私達が思うクラスタの割り当てと実行結果に差が出ることがあります。
本例で言えば、\boldsymbol{x_1}だけがクラスタ1に割り当てられて、\boldsymbol{x_2}\boldsymbol{x_6}クラスタ2に割り当てられることがあります。
これは、私達が思うクラスタの割り当てと異なりますよね。

【数学】k-means法_日本の市区町村を47都道府県に再割り当て

k-means法(グループ化を行う単純なアルゴリズム)を使って、日本の市区町村を47都道府県に再割り当てを行ってみた。

 

<再割り当て結果>

f:id:lm4183:20200822145309g:plain

(※1)クラスタ中心の初期値は、各47都道府県の中心とした。

(※2)画像内のXXXX年は、0回目 = 2020年として、1回実行につき1年経過とした。(2049年で収束。)

(※3)市区町村の経緯度は、「おまるくんの技術ノート」http://note.omarukun.com/notes/4/というサイトのデータを使用した。(記載日が2016/8/22とちょっと古いですが。。)

  (「位置参照情報 国土交通省」のデータが使用されています。)

 

<年表(用語は勝手に作成)>

2020年:日本の市区町村が、現在(※3)の47都道府県の通り。

   :日本大戦が勃発し、2021年(下記)以降、市区町村が再割り当てされていく。

2021年:東京都の南下により、東京都-神奈川戦争が勃発。東京都が、神奈川県の川崎市横浜市の大部分を占領。

   :北海道戦争が勃発。青森県が、北海道に進出。

2022年:宮崎県-鹿児島県戦争が勃発し、宮崎県が勝利。鹿児島県が、本州から撤退。

2023年:東京都-神奈川戦争にて、神奈川県が優勢。東京都が、本州から撤退。

   :秋田県岩手県がともに青森県縦断政策をとり、青森県分割。

2026年:北海道戦争秋田県が参戦。秋田県も、北海道に進出。

2027年:東京都が、小笠原諸島のみとなる。

2028年:埼玉県-神奈川県戦争が勃発し、埼玉県が優勢。

2030年頃:この頃には、日本西側の小競り合いが、ほぼほぼ収まる。

2035年埼玉県-神奈川県戦争にて、神奈川県が敗退。神奈川県が、本州から撤退。

2037年青森県縦断政策にて、秋田県岩手県がぶつかる。岩手県が、秋田県大館市を占領した(大館事件)。

2045年青森県下北郡(この時には秋田県下北郡)を除き、秋田県が、本州から撤退。

2049年日本大戦終結。(k-means法では、本年で収束し、2050年以降変化なし。)

※関東、北海道、鹿児島あたりの変化が分かりやすかった。それ以外の都道府県でも変化はあったが、なんかよく分かりづらく、年表に入れませんでした。

  

<作成環境>

 ・プログラム(クラスタリング):MATLAB 2020a

 ・プログラム(画像処理):MATLAB 2020a(+ Image Processing Toolbox)

 ・地図のプロット:Excel 2016(アドイン:Microsoft Power Map for Excel

 ・画像のGIF化:バナー工房https://www.bannerkoubou.com/anime/

 ・(使わなくても可能だが、使ったら便利だった)スクリーンショットの連続化:クリップボードの画像自動保存ソフト KoCliphttps://www.vector.co.jp/soft/dl/win95/util/se157875.html

 

<作成方法>

・目次

 1. k-means法とは: lm4183.hateblo.jp

 2. k-means法のプログラム:

lm4183.hateblo.jp

  3. 地図のプロット:

lm4183.hateblo.jp

  

<再割り当て結果(コメントなしver)>

f:id:lm4183:20200822144331g:plain