# [Matplotlib-users] axes properties

Wed Mar 15 05:46:08 EDT 2017

```Hello Jean-Philippe,

other question, you can have a look at the following example (the output
is attached as a PDF) that shows:

- How to define tick locators, which can be useful for example when you
do not know in advance what exact values the ticks should have. Please
docs](http://matplotlib.org/api/ticker_api.html). You may also find of
* [tick
locators](http://matplotlib.org/examples/ticks_and_spines/tick-locators.html);
* [tick
formatters](matplotlib.org/examples/ticks_and_spines/tick-formatters.html);
- How to invert one of the axes (the z-axis in the example).

```python
import numpy as np
import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D
from matplotlib.ticker import (LinearLocator, MaxNLocator,
MultipleLocator)

def dummy_plot(ax):
X, Y = np.meshgrid(np.arange(-5, 5, 0.25), np.arange(-5, 5, 0.25))
Z = np.sin(np.sqrt(X**2 + Y**2))
ax.plot_surface(X, Y, Z, cmap='coolwarm')
return ax

fig = plt.figure("Demo_Jean-Philippe_GRIVET", figsize=(4.8 * 3, 4.8))

ax0 = fig.add_subplot(1, 3, 1, projection='3d')
ax0 = dummy_plot(ax0)
ax0.set_title('Vanilla plot')

ax1 = fig.add_subplot(1, 3, 2, projection='3d')
ax1 = dummy_plot(ax1)
ax1.set_title('Custom locators')
ax1.set_xlabel('LinearLocator')  # evenly spaced ticks from min to max
ax1.xaxis.set_major_locator(LinearLocator(numticks=5))
ax1.set_ylabel('MaxNLocator')  # use up to nbins+1 ticks at nice locs
ax1.yaxis.set_major_locator(MaxNLocator(nbins=5, symmetric=True,
integer=True))
ax1.set_zlabel('MultipleLocator')  # ticks/range are a multiple of base
ax1.zaxis.set_major_locator(MultipleLocator(base=0.4))

ax2 = fig.add_subplot(1, 3, 3, projection='3d')
ax2 = dummy_plot(ax2)
ax2.set_title('Inverted z-axis')
ax2.invert_zaxis()
# From looking at the code, it is equivalent to:
# bottom, top = ax2.get_zlim()
# ax2.set_zlim(top, bottom, auto=None)

plt.tight_layout()
plt.show()
```

Best,

On 14/03/2017 16:43, Amit Yaron wrote:
> Try using the methods 'set_xticks', 'set_yticks' and 'set_zticks' of the
> Axes object.
> Each of them accepts a list of values that will be displayed.
> For example:
>   ax.set_xticks(np.r_[-10:10:3j])
>
> Will display ticks for values -10,0 and 10 only.
>
>
> On 11/03/17 19:54, Jean-Philippe GRIVET wrote:
>> Hello,
>>
>> I have two questions related to axes in a 3-D plot.
>>
>> 1. I often find that ticks are too close together so that labels
>> overlap.  How
>> can I change the number of ticks or the step length ?
>>
>> 2. The default axes lay-out has x increasing from left to right and y
>> increasing
>> from front to back. My finction decrease quickly with increasing y, so
>> that the
>> corresponding parts of the surface are hidden. Therefore, I would like
>> to have
>> y values increasing from back to front. I understand that yaxis_invert
>> can do it
>> but how is it used ?
>>
>> Thank you for your help
>> Jean-Philippe
>>
>>
>>
>> _______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users at python.org
>> https://mail.python.org/mailman/listinfo/matplotlib-users
>>
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users at python.org
> https://mail.python.org/mailman/listinfo/matplotlib-users

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Demo_Jean-Philippe_GRIVET.pdf
Type: application/pdf
Size: 183486 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20170315/afaf4b9a/attachment-0001.pdf>
```