2016-07-06 19 views
1

この例の後には、Python Mapping in Matplotlib Cartopy Color One Countryと書かれています。いくつかの国と完全に連携しています。アメリカ、フランス、イギリス、日本。Cartopy-Pythonの構文 - 複数のオブジェクト/国を1行に書く

for country in countries: 
    if country.attributes['adm0_a3'] == 'USA': 
     ax.add_geometries(country.geometry, ccrs.PlateCarree(), 
          facecolor='#008744', alpha = 0.5, 
          label=country.attributes['adm0_a3']), 

    if country.attributes['adm0_a3'] == 'FRA': 
     ax.add_geometries(country.geometry, ccrs.PlateCarree(), 
          facecolor='#008744', alpha = 0.5, 
          label=country.attributes['adm0_a3']), 
+ 'GBR' 
+ 'JPN' 

else: 
    ax.add_geometries(country.geometry, ccrs.PlateCarree(), 
         facecolor=('#c4e6ff'), 
         label=country.attributes['adm0_a3']) 

文を何度も繰り返すのではなく、1つの行に国のリストを入れたいと思います。

は、私が試した:

if country.attributes['adm0_a3'] == ['USA', 'FRA', 'GBR', 'JPN']: 

そしてany('USA, 'FRA', 'GBR', 'JPN')

そして['USA or 'FRA' or 'GBR' or'JPN']

そして辞書:

myDict = {'USA', 'FRA', 'GBR', 'JPN'} 
if country.attributes['adm0_a3'] == myDict: 

を明らかに、私はロジックはかなり右届きません。

答えて

2

あなたはinキーワードを使用する必要があり、このような何か:

for country in countries: 
    if country.attributes['adm0_a3'] in ['USA', 'FRA', 'GBR', 'JPN']: 
     ax.add_geometries(country.geometry, ccrs.PlateCarree(), 
          facecolor=(0, 0, 1), 
          label=country.attributes['adm0_a3']) 
    else: 
     ax.add_geometries(country.geometry, ccrs.PlateCarree(), 
          facecolor=('#c4e6ff'), 
          label=country.attributes['adm0_a3']) 

は、あなたが探していたものということですか?

+0

2文字の数時間の痛み! :ありがとう。 –

関連する問題