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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

1353閲覧

地図を描画したいが、エラーメッセージ'PROJ_LIB'が表示され、解決できない、、、

yamayamaki

総合スコア4

Matplotlib

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/07/16 02:06

使用している言語

Python3

前提・実現したいこと

1.地図を描画したい
2.描画した地図に、緯度経度で指定したプロット点を描画したい

しかし、以下のようなエラーコードが表示されて解決できません。
KeyError: 'PROJ_LIB'

なお、地図描画に際して、下記のサイトを参考にしました。
https://nm-player.blogspot.com/2012/09/matplotlibbasemap-1.html

該当のソースコード

# 簡単な地図上へのプロット import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap # フォントの指定(※それぞれの環境で異なる) import matplotlib.font_manager as fm prop_e = fm.FontProperties(fname='E:\usr\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\arial.ttf') prop_j = fm.FontProperties(fname='E:\usr\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\ipag.ttf') # 適当な場所の緯度と経度(東京駅と大阪駅) tokyo_lat = 35.681394 tokyo_lon = 139.766060 osaka_lat = 34.701921 osaka_lon = 135.494985 fig = plt.figure(figsize=(8,8)) m = Basemap(projection='merc',llcrnrlat=32.0,urcrnrlat=40.1,\ llcrnrlon=133.0,urcrnrlon=141.1, lat_ts=20,resolution='f') m.drawcoastlines( linewidth=0.5, color='k' ) m.fillcontinents(color='#eeeeee',lake_color='#ddeeff') m.drawstates( linewidth=0.5, color='k' ) m.drawcountries() m.drawmapboundary(fill_color='#ddeeff') # draw parallels and meridians. # フォントの指定をしてない場合注意(fontproperties=prop_eを消す) m.drawparallels(np.arange(32.0, 40.1, 2.0), labels = [1,0,0,0], fontsize=12, fontproperties=prop_e) m.drawmeridians(np.arange(133.0, 141.1, 2.0), labels = [0,0,0,1], fontsize=12, fontproperties=prop_e) # 東京駅 t_x, t_y = m( tokyo_lon, tokyo_lat) m.plot( t_x, t_y, 'g*', ms = 10 ) # 大阪駅 o_x, o_y = m(osaka_lon, osaka_lat) m.plot( o_x, o_y, 'bo', ms = 10 ) # 駅名を入れる。フォントの指定をしてない場合注意(fontproperties=prop_jを消す) plt.text(o_x + 10000, o_y + 10000, u"大阪駅", fontproperties=prop_j) plt.text(t_x + 10000, t_y + 10000, u"東京駅", fontproperties=prop_j) if 1: plt.savefig('map.emf') plt.savefig('map.png') if 1: plt.show()

試したこと

以下のようなエラーコードが表示されて解決できません。
KeyError: 'PROJ_LIB'

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

Python3
Spyder3.3.6

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

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

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

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

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

yymmt

2020/07/16 03:49

Python環境はAnacondaで構築されたものでしょうか?
yamayamaki

2020/07/16 04:07

はいAnaconda navigator 1.9.12からSpyderをインストールして構築しました
guest

回答1

0

Anacondaのパッケージで以下の2つをインストールして下さい。

  • basemap
  • basemap-data-hires

そうすると依存関係でproj4とpyprojがインストールされ実行できるようになります。
インストール方法はAnaconda promptを立ち上げて

terminal

1conda install basemap basemap-data-hires

とします。

投稿2020/07/16 04:22

yymmt

総合スコア1615

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問