Matplotlib diferentes direcciones de tick para un eje [duplicado]

Oct 11 2020

Problema simple: con matplotlib, quiero tener este estilo preestablecido:

Garrapatas inferior e izquierda: dirección hacia afuera, etiqueta en la
parte superior y derecha: dirección hacia adentro, etiqueta desactivada

Quiero tener este estilo preestablecido, por lo que no tengo que hacerlo para cada trama. El siguiente código me da las marcas superior y derecha, pero no puedo cambiar su dirección.

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams["xtick.top"] = True 
plt.rcParams["ytick.right"] = True

somearray=np.arange(0.0, 1.0, 0.1)

plt.figure()
plt.plot(somearray[:], somearray[:])
plt.xlabel('x')
plt.ylabel('y')
plt.show()

Respuestas

r-beginners Oct 11 2020 at 11:56

Puede usar x(y)ticks.directionpara configurar las garrapatas adentro. Es sencillo actualizar los parámetros en forma de diccionario.

import numpy as np
import matplotlib.pyplot as plt

# plt.rcParams["xtick.top"] = True 
# plt.rcParams["ytick.right"] = True
# plt.rcParams['xtick.direction'] = 'in'
# plt.rcParams['ytick.direction'] = 'in'

params = {"xtick.top": True, "ytick.right": True, "xtick.direction": "in", "ytick.direction": "in"}
plt.rcParams.update(params)

somearray = np.arange(0.0, 1.0, 0.1)

plt.figure()
plt.plot(somearray[:], somearray[:])
plt.xlabel('x')
plt.ylabel('y')
plt.show()