2017-05-18 1 views
1

J'essaye de créer un tracé de maille de couleur mais les points de données et leurs couleurs correspondantes semblent trop petits.Taille de marqueur plus grande pour l'intrigue utilisant pcolormesh

Mon script est:

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

Je cherche à obtenir la plus grande markersize de chaque point de données, mais je ne peux pas sembler trouver de la documentation sur la façon de le faire pour pcolormesh

+0

Étant donné que ce que vous vous demandez est impossible, vous pouvez réécrire votre question. – ImportanceOfBeingErnest

Répondre

1

Il n'y a pas de marqueur dans un pcolorme. La taille des zones colorées dans un tracé de couleur est déterminée par la grille sous-jacente. Par exemple, si la grille dans la direction x était [0,1,5,105], la dernière colonne serait 100 fois plus grande que la première.

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