2011-12-26 8 views
7

Me gustaría preguntar cómo producir una parcela similar a la de la figura a continuación? Básicamente, cómo tener el eje x en la parte superior de la figura. GraciasCómo trazar con el eje x en la parte superior de la figura?

enter image description here

Imagen de: http://oceanographyclay1987.blogspot.com/2010/10/light-attenuation-in-ocean.html

+0

complicado, probablemente una combinación de [este ejemplo] (http://matplotlib.sourceforge.net/examples/axes_grid/simple_axisline4.html) y [este] (http://matplotlib.sourceforge.net/examples/axes_grid/ demo_axisline_style.html) –

+0

Sí, el uso de twin() es la única posibilidad que veo en este momento. Me preguntaba si existe una solución más directa. Gracias – mikeP

Respuesta

9

Uso

ax.xaxis.set_ticks_position("top") 

Por ejemplo,

import numpy as np 
import matplotlib.pyplot as plt 

numdata = 100 
t = np.linspace(0, 100, numdata) 
y = 1/t**(1/2.0) 

fig = plt.figure() 
ax = fig.add_subplot(1, 1, 1) 
ax.xaxis.set_ticks_position('top') 
ax.yaxis.grid(linestyle = '-', color = 'gray') 
ax.invert_yaxis() 
ax.plot(t, y, 'g-', linewidth = 1.5) 

plt.show() 

enter image description here

+0

'ax.yaxis.grid (True, linestyle = '-')' para agregar líneas horizontales – jfs

+0

Wow, gracias. Esta es una forma elegante de hacerlo. – mikeP

+0

@ J.F.Sebastian: Gracias por la sugerencia. – unutbu

Cuestiones relacionadas