Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Add degrees and decimal minutes tick formatting mode - #2740

Open
DavidVadnais wants to merge 1 commit into
SciTools:mainfrom
DavidVadnais:fix-issue#944
Open

Add degrees and decimal minutes tick formatting mode#2740
DavidVadnais wants to merge 1 commit into
SciTools:mainfrom
DavidVadnais:fix-issue#944

Conversation

@DavidVadnais

Copy link
Copy Markdown
Contributor

Rationale

Fixes: #944

Example code

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter

fig, axes = plt.subplots(1, 3, subplot_kw={'projection': ccrs.PlateCarree()},
                         figsize=(18, 5))

ax = axes[0]
ax.set_extent([-161, -154, 18, 23], crs=ccrs.PlateCarree())
ax.coastlines()
ax.set_xticks([-161, -159.51, -158, -156.3, -155, -154], crs=ccrs.PlateCarree())
ax.set_yticks([18, 19.51, 21, 22.3, 23], crs=ccrs.PlateCarree())
ax.xaxis.set_major_formatter(LongitudeFormatter(dms='dm'))
ax.yaxis.set_major_formatter(LatitudeFormatter(dms='dm'))
ax.set_title("dms='dm' (default format)")

ax = axes[1]
ax.set_extent([-161, -154, 18, 23], crs=ccrs.PlateCarree())
ax.coastlines()
ax.set_xticks([-161, -159.51, -158, -156.3, -155, -154], crs=ccrs.PlateCarree())
ax.set_yticks([18, 19.51, 21, 22.3, 23], crs=ccrs.PlateCarree())
ax.xaxis.set_major_formatter(LongitudeFormatter(dms='dm', minutes_number_format='.1f'))
ax.yaxis.set_major_formatter(LatitudeFormatter(dms='dm', minutes_number_format='.1f'))
ax.set_title("dms='dm' (minutes as .1f)")

ax = axes[2]
ax.set_extent([-161, -154, 18, 23], crs=ccrs.PlateCarree())
ax.coastlines()
ax.set_xticks([-161, -159.51, -158, -156.3, -155, -154], crs=ccrs.PlateCarree())
ax.set_yticks([18, 19.51, 21, 22.3, 23], crs=ccrs.PlateCarree())
ax.xaxis.set_major_formatter(LongitudeFormatter(dms=True))
ax.yaxis.set_major_formatter(LatitudeFormatter(dms=True))
ax.set_title("dms=True (degrees-minutes-seconds)")

plt.tight_layout()
plt.show()

Example output

image

Implications

I think the worst part of this PR is the change from dms: bool, optional to dms: bool or str, optional I'm interested in doing this differently but I'm not sure what you'd suggest? This implementation is backwards compatible which is good.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

LAT/LONGITUDE_FORMATTER with different formats (minutes, seconds)

1 participant