1
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonで世界地図-18(地球が自転するアニメグラフ)

Posted at

私にとって、とてつもない記事を見つけました。
目からウロコではなく岩石くらいの衝撃です。

Pythonで世界地図-7(地球が自転するアニメgif動画)
https://qiita.com/ty21ky/items/abf810a1e26e974930b8
を投稿した時に、いろいろ探したのですが、この記事は2018-07-13とつい最近の記事ですので前回の時はなかったのですね。

参考
Python: matplotlib で動的にグラフを生成する
https://blog.amedama.jp/entry/2018/07/13/001155

a.gif

上のアニメgifは前回の物ですが、今回はmpl_toolkits.basemapの地図を再描画しているので、intervalをいくら短くしてもこれの数分の1くらいのスピードで、なおかつスムースではありません。
これは、私が使用しているPCのspecが低い(i3-7100, 8GB)からかも知れません。

白黒の地球でこれですから、色を付けるくらいなら関係ないと思いますが、標高図・衛星図などではもっと遅くなると思います。

ドキュメントを読めば、何でも載っていると思うのですが、日本語で書いてあっても理解できないものもあるし、英語などでは、いちいち翻訳して(Google翻訳)も100%理解出来るものもありますが、普通50%もわかれば御の字の場合が多いです。
わかったとしても、サンプルコードがないと、うまく動かない場合も多いです。

# !/usr/bin/python3
# -*- coding: utf-8 -*-

import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.basemap import Basemap
from matplotlib import animation

lat = 0

def _update(frame):
    """グラフを更新するための関数"""
    # 現在のグラフを消去する
    plt.cla()

    my_map = Basemap(projection='ortho', lat_0=lat, lon_0=frame,resolution='c', area_thresh=10000.0)

    my_map.drawcoastlines()

def main():
    # 描画領域
    fig = plt.figure(figsize=(4, 4))

    params = {
        'fig': fig,
        'func': _update,  # グラフを更新する関数
        'interval': 1,  # 更新間隔 (ミリ秒)
        'frames': np.arange(359, 0, -1),  # フレーム番号を生成するイテレータ
        'repeat': True,  # 繰り返す
    }
    anime = animation.FuncAnimation(**params)


    # グラフを表示する
    plt.show()
    plt.close()  #クローズしてメモリを開放する。連続して行う場合は必ず必要。


if __name__ == '__main__':
    main()
1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?