2011-12-26 104 views
7

我想问如何产生一个类似于下图中的情节?基本上,如何在图的顶部有x轴。由于如何在图的顶部绘制x轴?

enter image description here

图片来自:http://oceanographyclay1987.blogspot.com/2010/10/light-attenuation-in-ocean.html

+0

棘手,可能是[此示例](http://matplotlib.sourceforge.net/examples/axes_grid/simple_axisline4.html)和[this one]的组合(http://matplotlib.sourceforge.net/examples/axes_grid/ demo_axisline_style.html) – 2011-12-27 00:21:27

+0

是的,使用twin()是我目前看到的唯一可能性。我只是想知道是否有更直接的解决方案。谢谢 – mikeP 2011-12-27 00:30:47

回答

9

使用

ax.xaxis.set_ticks_position("top") 

例如,

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 =' - ')'添加横线 – jfs 2011-12-27 07:03:14

+0

哇,谢谢。这是一个很好的方法。 – mikeP 2011-12-27 12:40:13

+0

@ J.F.Sebastian:谢谢你的建议。 – unutbu 2011-12-27 20:08:10