質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1093閲覧

Basemapでプロットする際、西経の点が消えてしまう件

genki_0330

総合スコア4

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2020/05/11 10:30

編集2020/05/14 15:21

前提・実現したいこと

basemapを用いて、下の図にあるようなファイル名から緯度経度のみを抜き出し(例:25s100eだったら南緯25°東経100°)、その位置を地図上にプロットしたい。
イメージ説明

発生している問題・エラーメッセージ

東経のデータは地図上に表示されるが、西経のデータが表示されない。

該当のソースコード

Python

1ソースコード 2```ここに言語を入力 3import matplotlib.pyplot as plt 4from mpl_toolkits.basemap import Basemap 5import glob 6import re 7 8path = '0117/data/' 9fname = 'met*_10m.ascii.txt' 10flist = path + fname 11flist = glob.glob(flist) 12len = len(flist) 13 14fig = plt.figure(figsize=(15,10)) 15 16south = -30 17north = 30 18west = 0 19east = 360 20 21m = Basemap(llcrnrlat=south,urcrnrlat=north, llcrnrlon=west,urcrnrlon=east,resolution='c') 22m.drawcoastlines( linewidth=0.5, color='k' ) 23m.fillcontinents(color='black',lake_color='#ddeeff') 24m.drawparallels(np.arange(south, north+0.1, 30), labels=[1,0,0,0], fontsize=14,linewidth=0.5,color='black') 25m.drawmeridians(np.arange(west,east+0.1, 60), labels=[0,0,0,1], fontsize=14,linewidth=0.5,color='black') 26 27 28for list in flist: 29 30 loc = re.findall(r'\d+',list) 31 lats = int(loc[1]) 32 lons = int(loc[2]) 33 34 35 locs = re.findall(r'\D+',list) 36 if locs[1] == 'n': 37 lats = lats 38 else: 39 lats = -(lats) 40 41 if locs[2] == 'e_': 42 lons = lons 43 else: 44 lons = 360 - lons 45 46 m.scatter(lons,lats,s=50,marker='o',color='red',latlon=True) 47 48plt.show() 49

試したこと

下の画像の180°の位置を超えた瞬間にデータがプロットされないみたいです。(確認済み)

補足情報(FW/ツールのバージョンなど)

上のコードを実行すると次のようになります。
イメージ説明

正しいとこのようになるらしいです。
イメージ説明

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2020/05/14 06:39

コードが読めないので質問を編集し、```で上下を囲ってください(選択して<code>ボタンも可)
genki_0330

2020/05/14 15:22

お手数おかけして申し訳ございません。 助言の通り編集してみたのですが、いかがでしょうか?
guest

回答1

0

ベストアンサー

データの方の経度の表現とBasemapの経度の表現を確認してみてください。
地図が0度~360度で、データの方が-180度~180度とか(またはその逆)になってたりしませんか?
そろえてあげれば表示されそうな気がします。

投稿2020/05/15 06:33

fsoe

総合スコア163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問