def stereonet_projection_explanation(ax):
    """Example to explain azimuth and dip on a lower-hemisphere stereonet."""
    ax.set_title('Dip and Azimuth', y=1.1, size=18)

    # Set the azimuth ticks to be just "N", "E", etc.
    ax.set_azimuth_ticks(range(0, 360, 10))

    # Hackishly set some of the azimuth labels to North, East, etc...
    fmt = ax.yaxis.get_major_formatter()
    labels = [fmt(item) for item in ax.get_azimuth_ticks()]
    labels[0] = 'North'
    labels[9] = 'East'
    labels[18] = 'South'
    labels[27] = 'West'
    ax.set_azimuth_ticklabels(labels)

    # Unhide the xticklabels and use them for dip labels
    ax.xaxis.set_tick_params(label1On=True)
    labels = list(range(10, 100, 10)) + list(range(80, 0, -10))
    ax.set_xticks(np.radians(np.arange(-80, 90, 10)))
    ax.set_xticklabels([fmt(np.radians(item)) for item in labels])

    ax.set_xlabel('Dip or Plunge')

    xlabel_halo(ax)
    return ax
def stereonet_projection_explanation ( ax ) : ax . set_title ( 'Dip and Azimuth' , y = 1.1 , size = 18 ) ax . set_azimuth_ticks ( range ( 0 , 360 , 10 ) ) fmt = ax . yaxis . get_major_formatter ( ) labels = [ fmt ( item ) for item in ax . get_azimuth_ticks ( ) ] labels [ 0 ] = 'North' labels [ 9 ] = 'East' labels [ 18 ] = 'South' labels [ 27 ] = 'West' ax . set_azimuth_ticklabels ( labels ) ax . xaxis . set_tick_params ( label1On = True ) labels = list ( range ( 10 , 100 , 10 ) ) + list ( range ( 80 , 0 , - 10 ) ) ax . set_xticks ( np . radians ( np . arange ( - 80 , 90 , 10 ) ) ) ax . set_xticklabels ( [ fmt ( np . radians ( item ) ) for item in labels ] ) ax . set_xlabel ( 'Dip or Plunge' ) xlabel_halo ( ax ) return ax
Example to explain azimuth and dip on a lower-hemisphere stereonet.