使用pcolormesh的绘图的更大标记大小

时间:2017-05-18 16:16:28

标签: python numpy matplotlib matplotlib-basemap

我正在尝试创建一个彩色网格图,但数据点及其相应的颜色显得太小。

我的脚本是:

import pandas as pd
import numpy as np
from mpl_toolkits.basemap import Basemap, cm
import matplotlib.pyplot as plt



df = pd.read_csv('data.csv', usecols=[1,2,4])
df = df.apply(pd.to_numeric)

val_pivot_df = df.pivot(index='Latitude', columns='Longitude', values='Bin 1')

lons = val_pivot_df.columns.astype(float)
lats = val_pivot_df.index.astype(float)

fig, ax = plt.subplots(1, figsize=(8,8))

m = Basemap(projection='merc',
        llcrnrlat=df.dropna().min().Latitude-5
        , urcrnrlat=df.dropna().max().Latitude+5
        , llcrnrlon=df.dropna().min().Longitude-5
        , urcrnrlon=df.dropna().max().Longitude+5
        , resolution='i', area_thresh=10000
        )

m.drawcoastlines()
m.drawstates()
m.drawcountries()
m.fillcontinents(color='gray', lake_color='white')
m.drawmapboundary(fill_color='0.3')

x, y = np.meshgrid(lons,lats)
px,py = m(x,y)
data_values = val_pivot_df.values
masked_data = np.ma.masked_invalid(data_values)
cmap = plt.cm.viridis
m.pcolormesh(px, py, masked_data, vmin=0, vmax=8000)
m.colorbar()

plt.show()

Image produced here

我希望让每个数据点的标记更大,但我似乎无法找到有关如何为pcolormesh执行此操作的任何文档

1 个答案:

答案 0 :(得分:1)

pcolormesh中没有标记。 pcolor图中彩色区域的大小由底层网格决定。例如,如果x方向的网格为[0,1,5,105],则最后一列的大小将比第一列大100倍。

import matplotlib.pyplot as plt
import numpy as np; np.random.seed(1)

x = [0,1,5,25,27,100]
y = [0,10,20,64,66,100]
X,Y = np.meshgrid(x,y)
Z = np.random.rand(len(y)-1, len(x)-1)

plt.pcolormesh(X,Y,Z)
plt.show()

enter image description here