小编Bra*_*aux的帖子

matplotlib图例的标题

我知道拥有一个传奇的标题似乎相当多余,但是有可能使用matplotlib吗?

这是我的代码片段:

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt

one = mpatches.Patch(facecolor='#f3f300', label='label1', linewidth = 0.5, edgecolor = 'black')
two = mpatches.Patch(facecolor='#ff9700', label = 'label2', linewidth = 0.5, edgecolor = 'black')
three = mpatches.Patch(facecolor='#ff0000', label = 'label3', linewidth = 0.5, edgecolor = 'black')

legend = plt.legend(handles=[one, two, three], loc = 4, fontsize = 'small', fancybox = True)

frame = legend.get_frame() #sets up for color, edge, and transparency
frame.set_facecolor('#b4aeae') #color of legend
frame.set_edgecolor('black') #edge color of legend
frame.set_alpha(1) #deals with …
Run Code Online (Sandbox Code Playgroud)

python patch matplotlib

30
推荐指数
3
解决办法
2万
查看次数

底图在纬度经度之间绘制线条

我正在绘制龙卷风的起点/终点位置.csv文件具有以下数据:

TouchDownLat TouchDownLong LiftoffLat LiftoffLong
31.53         -97.15       31.74      -96.88
46.45         -100.67      46.67      -100.47
43.1          -83.85       43.17      -83.42
Run Code Online (Sandbox Code Playgroud)

等等...

我所做的是每个纬度和经度,并将其分成一个numpy数组,如下:

import matplotlib.pyplot as plt
import csv
import numpy as np
from mpl_toolkits.basemap import Basemap
with open(fname, 'rb') as f:
    w = csv.reader(f, delimiter = ',')
    for i, line in enumerate (w):
      if i == 0 or line[2][0:4] not in str(range(2007,2018)):
          pass
      else:
          lat_td.append(line[27])
          long_td.append(line[28])
          lat_lift.append(line[29])
          long_lift.append(line[30])

touchdown = np.array([[lat_td], [long_td]])
lift = np.array([[lat_lift], [long_lift]])
Run Code Online (Sandbox Code Playgroud)

对于底图,我找到了所有纬度/经度的最大值/最小值,这样它就可以制作一张地图来切断没有龙卷风的状态(例如:我不希望看到加利福尼亚州看到EF -5龙卷风地点)

m = Basemap(projection = 'merc', …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy list matplotlib-basemap

3
推荐指数
1
解决办法
4404
查看次数

在cartopy上绘制形状良好的多边形

我正在寻找在 Cartopy 地图上绘制一个形状优美的多边形。我查看了 Cartopy 和 shapely 文档,并查看了 StackOverflow 上的各种解决方案,但似乎没有任何效果,我不确定为什么。

这是我所拥有的:

from shapely.geometry.polygon import Polygon
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt

# make the map
bounds = [(-122., -72., 25., 50.)]
plt.figure(figsize=(5, 3))
ax = plt.axes(projection=ccrs.LambertConformal())
ax.set_extent(*bounds, crs=ccrs.PlateCarree())
ax.add_feature(cfeature.COASTLINE.with_scale('50m'), linewidth=0.75)
ax.add_feature(cfeature.STATES, linewidth=0.5)

# add in the polygon
ax.add_geometries([polygon], crs=ccrs.PlateCarree(), facecolor = 'b', edgecolor='black', alpha=0.5)
Run Code Online (Sandbox Code Playgroud)

使用当前的代码,我得到了一张只有美国的空白图像。我认为:1)投影是错误的,而是将多边形放置在其他地方,或者2)多边形ax.add_geometry正确放置在地图上,但由于属性设置不正确而未显示。

对于上述内容,polygon如下:

polygon = Polygon[(-6719446.159777582, 8747162.244957967),
 (-6714522.73594268, 8747162.244957967),
 (-6714522.73594268, 8742238.821123065),
 (-6704675.888272878, 8742238.821123065),
 (-6704675.888272878, 8737315.397288164),
 (-6689905.616768174, 8737315.397288164), …
Run Code Online (Sandbox Code Playgroud)

python matplotlib shapely cartopy

2
推荐指数
1
解决办法
8577
查看次数