Open jsh9 opened 5 years ago
most likely, this is an issue with matplotlib rather than basemap itself. I also suspect that this has something to do with the style change work for matplotlib v2.0.
On Tue, Mar 19, 2019 at 6:25 PM Jian Shi notifications@github.com wrote:
Hello,
When I tried to plot hollow markers on the map, the marker is actually filled, not transparent. See this map below:
[image: image] https://user-images.githubusercontent.com/25124332/54645888-a3f89480-4a5a-11e9-8345-dec0ccb351c1.png
Below is the code to reproduce this map:
import matplotlib.pyplot as pltfrom mpl_toolkits.basemap import Basemap
lon_ll = -124.5 # lower left corner, longitude lon_ur = -105.2 # upper right corner, longitude lat_ll = 32.0 # lower left corner, latitude lat_ur = 42.0 # upper right corner, latitude
f = plt.figure(dpi=100) ax = plt.axes()
m = Basemap(llcrnrlon=lon_ll,llcrnrlat=lat_ll, urcrnrlon=lon_ur,urcrnrlat=lat_ur,\ rsphere=(6378137.00,6356752.3142),\ resolution='c',projection='merc',\ lat_0=(lat_ll+lat_ur)/2,\ lon_0=(lon_ll+lon_ur)/2,lat_ts=20., epsg = 3310)
m.arcgisimage(service='World_Physical_Map', xpixels=120, epsg=3310, verbose=False)
m.drawstates() LA = (34.05, -118.25)LV = (36.175, -115.136389)SF = (37.783333, -122.416667)PH = (33.45, -112.066667)
ms = 15 alpha = 0.75
m.plot(m(LV[1], LV[0]), marker='s', ms=ms, ls='none', mew=1.25,c='blue', fillstyle='none', alpha=alpha) m.plot(m(LA[1], LA[0]), marker='o', ms=ms, ls='none', mew=1.25,c='red', fillstyle='right', alpha=alpha) m.plot(m(PH[1], PH[0]), marker='o', ms=ms, ls='none', mew=1.25,c='green', fillstyle='full', alpha=alpha) m.plot(m(SF[1], SF[0]), marker='o', ms=ms, ls='none', mew=1.25,c='cyan', fillstyle='left', alpha=alpha, markerfacecoloralt='white')
horiz_offset = 0.6 # unit: degrees plt.text(m(LA[1] + horiz_offset, LA[0]), 'Los Angeles') plt.text(m(LV[1] + horiz_offset, LV[0]), 'Las Vegas') plt.text(m(SF[1] + horiz_offset, SF[0]), 'San Francisco') plt.text(m(PH[1] + horiz_offset, PH[0]), 'Phoenix')
The markers for Los Angeles and Las Vegas should have been hollow (on the left side for LA, and fully for LV), but they are not. For half-full markers, such as the marker for San Francisco, I can set the markerfacecoloralt to other colors, but not for fully open markers.
- Operating system: Windows 10
- Python version: 3.6.6
- Basemap version: both 1.1.0 and 1.2.0 have this issue
- matplotlib version: 2.2.2
Note that I used to not have this issue some time ago, with older versions of matplotlib (I don't remember which).
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/matplotlib/basemap/issues/455, or mute the thread https://github.com/notifications/unsubscribe-auth/AARy-Ai_7uLKFvfeMdwx7-UdaElM_dV6ks5vYWPegaJpZM4b9Pe4 .
I was able to reproduce the result here: https://matplotlib.org/gallery/lines_bars_and_markers/marker_fillstyle_reference.html
For "fill style" equal to "none", the markers are transparent. So it seems that matplotlib is normal.
I am pretty sure the issue didn't come from matplotlib upgrading to v2.0, because when I was able to get proper hollow markers, the matplotlib version I was using was already v2.0+.
Should I open an issue over at matplotlib?
As shown in https://github.com/matplotlib/matplotlib/issues/13725 this seems to be an issue in matplotlib 2.2.2, which has been fixed in matplotlib 2.2.3.
Hello,
When I tried to plot hollow markers on the map, the marker is actually filled, not transparent. See this map below:
Below is the code to reproduce this map:
The markers for Los Angeles and Las Vegas should have been hollow (on the left side for LA, and fully for LV), but they are not. For half-full markers, such as the marker for San Francisco, I can set the
markerfacecoloralt
to other colors, but not for fully open markers.Note that I used to not have this issue some time ago, with older versions of matplotlib (I don't remember which).