## [Matplotlib-users] tick formatter - floating axis

 [Matplotlib-users] tick formatter - floating axis From: Stefan Mauerberger - 2010-11-10 13:17:09 ```Hello everyone, I have a question regarding the formatting of ticks in a curved coordinate system. To create my plots I am useing the mpl_toolkits.axisartist.floating_axes.GridHelperCurveLinear() function. This works quite well but I have difficulties with formatting the axis. I am working in a polar coordinate system. To format the longitudinal axis I found the function mpl_toolkits.axisartist.angle_helper.FormatterDMS() and it works good. But I want to chance the formatting of the radius too. For this I need to pass something to the kwargs tick_formatter2 of the function GridHelperCurveLinear but I do not know what. Could you give me some advice? Regards Stefan Here is the code I use: import matplotlib.pyplot as plt import mpl_toolkits.axisartist.floating_axes as floating_axes from matplotlib.projections import PolarAxes fig = plt.figure() tr = PolarAxes.PolarTransform() grid_helper = floating_axes.GridHelperCurveLinear( tr, extremes=( 1, 2, 1000, 2000 ), tick_formatter1 = None, tick_formatter2 = None ) ax1 = floating_axes.FloatingSubplot( fig, 111, grid_helper=grid_helper ) fig.add_subplot( ax1 ) ax1.grid( True ) plt.show() ```

 [Matplotlib-users] tick formatter - floating axis From: Stefan Mauerberger - 2010-11-10 13:17:09 ```Hello everyone, I have a question regarding the formatting of ticks in a curved coordinate system. To create my plots I am useing the mpl_toolkits.axisartist.floating_axes.GridHelperCurveLinear() function. This works quite well but I have difficulties with formatting the axis. I am working in a polar coordinate system. To format the longitudinal axis I found the function mpl_toolkits.axisartist.angle_helper.FormatterDMS() and it works good. But I want to chance the formatting of the radius too. For this I need to pass something to the kwargs tick_formatter2 of the function GridHelperCurveLinear but I do not know what. Could you give me some advice? Regards Stefan Here is the code I use: import matplotlib.pyplot as plt import mpl_toolkits.axisartist.floating_axes as floating_axes from matplotlib.projections import PolarAxes fig = plt.figure() tr = PolarAxes.PolarTransform() grid_helper = floating_axes.GridHelperCurveLinear( tr, extremes=( 1, 2, 1000, 2000 ), tick_formatter1 = None, tick_formatter2 = None ) ax1 = floating_axes.FloatingSubplot( fig, 111, grid_helper=grid_helper ) fig.add_subplot( ax1 ) ax1.grid( True ) plt.show() ```
 Re: [Matplotlib-users] tick formatter - floating axis From: Jae-Joon Lee - 2010-11-11 00:39:04 ```How do you want your ticklabels formatted? If axisartist does not provide a formatter that fits your need, you can create a custom formatter. Formatter for axisartist can be any callable object with following signature. def Formatter(direction, factor, values): # ... return list_of_string_that corresponds_to_values You may ignore direction and factor parameters for now. For example, class MyFormatter(object): def __call__(self, direction, factor, values): _fmt = "\$%.1f\$" return [_fmt % v for v in values] then you could do grid_helper = floating_axes.GridHelperCurveLinear( tr, extremes=( 1, 2, 1000, 2000 ), tick_formatter1 = None, tick_formatter2 = MyFormatter() ) Regards, -JJ On Wed, Nov 10, 2010 at 10:17 PM, Stefan Mauerberger wrote: > Hello everyone, > > I have a question regarding the formatting of ticks in a curved > coordinate system. To create my plots I am useing the > mpl_toolkits.axisartist.floating_axes.GridHelperCurveLinear() function. > This works quite well but I have difficulties with formatting the axis. > I am working in a polar coordinate system. To format the longitudinal > axis I found the function > mpl_toolkits.axisartist.angle_helper.FormatterDMS() and it works good. > But I want to chance the formatting of the radius too. For this I need > to pass something to the kwargs tick_formatter2 of the function > GridHelperCurveLinear but I do not know what. > > Could you give me some advice? > > Regards > > Stefan > > Here is the code I use: > > import matplotlib.pyplot as plt > import mpl_toolkits.axisartist.floating_axes as floating_axes > from   matplotlib.projections import PolarAxes > > fig = plt.figure() > > tr = PolarAxes.PolarTransform() > > grid_helper = floating_axes.GridHelperCurveLinear( tr, extremes=( 1, 2, > 1000, 2000 ), tick_formatter1 = None, tick_formatter2 = None ) > > ax1 = floating_axes.FloatingSubplot( fig, 111, grid_helper=grid_helper ) > > fig.add_subplot( ax1 ) > > ax1.grid( True ) > > plt.show() > > > ------------------------------------------------------------------------------ > The Next 800 Companies to Lead America's Growth: New Video Whitepaper > David G. Thomson, author of the best-selling book "Blueprint to a > Billion" shares his insights and actions to help propel your > business during the next growth cycle. Listen Now! > http://p.sf.net/sfu/SAP-dev2dev > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > ```
 Re: [Matplotlib-users] tick formatter - floating axis From: Stefan Mauerberger - 2010-11-11 14:17:21 ```Hi JJ, thanks a lot for your Answer. Now I have understand how this works and created my one formatter: class MyFormatter(object): def __init__(self, fmt='\$%f\$'): self.fmt = fmt def __call__(self, direction, factor, values): return [self.fmt % v for v in values] Is there something like this already in Matplotlib? I looked into axisartist but can not find anything similar. Regards Stefan On Thu, 2010-11-11 at 09:38 +0900, Jae-Joon Lee wrote: > How do you want your ticklabels formatted? > > If axisartist does not provide a formatter that fits your need, you > can create a custom formatter. > Formatter for axisartist can be any callable object with following signature. > > def Formatter(direction, factor, values): > # ... > return list_of_string_that corresponds_to_values > > You may ignore direction and factor parameters for now. > For example, > > class MyFormatter(object): > def __call__(self, direction, factor, values): > _fmt = "\$%.1f\$" > return [_fmt % v for v in values] > > then you could do > > grid_helper = floating_axes.GridHelperCurveLinear( tr, extremes=( 1, 2, > 1000, 2000 ), tick_formatter1 = None, tick_formatter2 = MyFormatter() ) > > Regards, > > -JJ > > > On Wed, Nov 10, 2010 at 10:17 PM, Stefan Mauerberger > wrote: > > Hello everyone, > > > > I have a question regarding the formatting of ticks in a curved > > coordinate system. To create my plots I am useing the > > mpl_toolkits.axisartist.floating_axes.GridHelperCurveLinear() function. > > This works quite well but I have difficulties with formatting the axis. > > I am working in a polar coordinate system. To format the longitudinal > > axis I found the function > > mpl_toolkits.axisartist.angle_helper.FormatterDMS() and it works good. > > But I want to chance the formatting of the radius too. For this I need > > to pass something to the kwargs tick_formatter2 of the function > > GridHelperCurveLinear but I do not know what. > > > > Could you give me some advice? > > > > Regards > > > > Stefan > > > > Here is the code I use: > > > > import matplotlib.pyplot as plt > > import mpl_toolkits.axisartist.floating_axes as floating_axes > > from matplotlib.projections import PolarAxes > > > > fig = plt.figure() > > > > tr = PolarAxes.PolarTransform() > > > > grid_helper = floating_axes.GridHelperCurveLinear( tr, extremes=( 1, 2, > > 1000, 2000 ), tick_formatter1 = None, tick_formatter2 = None ) > > > > ax1 = floating_axes.FloatingSubplot( fig, 111, grid_helper=grid_helper ) > > > > fig.add_subplot( ax1 ) > > > > ax1.grid( True ) > > > > plt.show() > > > > > > ------------------------------------------------------------------------------ > > The Next 800 Companies to Lead America's Growth: New Video Whitepaper > > David G. Thomson, author of the best-selling book "Blueprint to a > > Billion" shares his insights and actions to help propel your > > business during the next growth cycle. Listen Now! > > http://p.sf.net/sfu/SAP-dev2dev > > _______________________________________________ > > Matplotlib-users mailing list > > Matplotlib-users@... > > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > ```
 Re: [Matplotlib-users] tick formatter - floating axis From: Jae-Joon Lee - 2010-11-13 06:09:06 ```With axisartist toolkit, no. I may add a simple wrapper around matplotlit's original formatter classes. Regards, -JJ On Thu, Nov 11, 2010 at 11:17 PM, Stefan Mauerberger wrote: > Hi JJ, > > thanks a lot for your Answer. Now I have understand how this works and > created my one formatter: > > class MyFormatter(object): >    def __init__(self, fmt='\$%f\$'): >            self.fmt = fmt >    def __call__(self, direction, factor, values): >            return [self.fmt % v for v in values] > > Is there something like this already in Matplotlib? I looked into > axisartist but can not find anything similar. > > Regards > > Stefan > > > On Thu, 2010-11-11 at 09:38 +0900, Jae-Joon Lee wrote: >> How do you want your ticklabels formatted? >> >> If axisartist does not provide a formatter that fits your need, you >> can create a custom formatter. >> Formatter for axisartist can be any callable object with following signature. >> >> def Formatter(direction, factor, values): >>     # ... >>     return list_of_string_that corresponds_to_values >> >> You may ignore direction and factor parameters for now. >> For example, >> >> class MyFormatter(object): >>     def __call__(self, direction, factor, values): >>         _fmt = "\$%.1f\$" >>         return [_fmt % v for v in values] >> >> then you could do >> >> grid_helper = floating_axes.GridHelperCurveLinear( tr, extremes=( 1, 2, >> 1000, 2000 ), tick_formatter1 = None, tick_formatter2 = MyFormatter() ) >> >> Regards, >> >> -JJ >> >> >> On Wed, Nov 10, 2010 at 10:17 PM, Stefan Mauerberger >> wrote: >> > Hello everyone, >> > >> > I have a question regarding the formatting of ticks in a curved >> > coordinate system. To create my plots I am useing the >> > mpl_toolkits.axisartist.floating_axes.GridHelperCurveLinear() function. >> > This works quite well but I have difficulties with formatting the axis. >> > I am working in a polar coordinate system. To format the longitudinal >> > axis I found the function >> > mpl_toolkits.axisartist.angle_helper.FormatterDMS() and it works good. >> > But I want to chance the formatting of the radius too. For this I need >> > to pass something to the kwargs tick_formatter2 of the function >> > GridHelperCurveLinear but I do not know what. >> > >> > Could you give me some advice? >> > >> > Regards >> > >> > Stefan >> > >> > Here is the code I use: >> > >> > import matplotlib.pyplot as plt >> > import mpl_toolkits.axisartist.floating_axes as floating_axes >> > from   matplotlib.projections import PolarAxes >> > >> > fig = plt.figure() >> > >> > tr = PolarAxes.PolarTransform() >> > >> > grid_helper = floating_axes.GridHelperCurveLinear( tr, extremes=( 1, 2, >> > 1000, 2000 ), tick_formatter1 = None, tick_formatter2 = None ) >> > >> > ax1 = floating_axes.FloatingSubplot( fig, 111, grid_helper=grid_helper ) >> > >> > fig.add_subplot( ax1 ) >> > >> > ax1.grid( True ) >> > >> > plt.show() >> > >> > >> > ------------------------------------------------------------------------------ >> > The Next 800 Companies to Lead America's Growth: New Video Whitepaper >> > David G. Thomson, author of the best-selling book "Blueprint to a >> > Billion" shares his insights and actions to help propel your >> > business during the next growth cycle. Listen Now! >> > http://p.sf.net/sfu/SAP-dev2dev >> > _______________________________________________ >> > Matplotlib-users mailing list >> > Matplotlib-users@... >> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> > >> > > ```