1

我在 ipython 笔记本中有子图。mpld3我可以使用该模块放大内联。但是,现在我只能放大一个矩形。由于我的应用程序的性质,我需要水平缩放。

有没有办法在 matplotlib 中水平缩放(使用光标)?更好的是,我可以通过代码将缩放设置为水平而不需要任何键盘操作吗?在 Matlab 中,我可以通过设置来做到这一点:

figure(1); h=zoom; set(h,'Motion','horizontal','Enable','on');

这是python中的一个最小示例:

%matplotlib inline
import matplotlib.pyplot as plt
import mpld3
import numpy as np
mpld3.enable_notebook()
x = np.arange(100)
y = np.sin(x)
z = np.cos(x)

ax1 = plt.subplot(2,1,1)
ax1.plot(x,y)
ax2 = plt.subplot(2,1,2, sharex=ax1)
ax2.plot(x,z)
4

1 回答 1

1

我的建议是使用Plotly,它非常适合在 Jupyter 中创建交互式绘图。

您可以在此处获得有关如何使用它绘制时间序列的更多信息,并在此处获得有关子图的信息。这是我用你的数据做的,希望它能达到你想要的效果!

%matplotlib inline
import plotly
from plotly import tools
import numpy as np
plotly.offline.init_notebook_mode() # run at the start of every notebook

x = np.arange(100)
y = np.sin(x)
z = np.cos(x)

trace1 = go.Scatter(x=x, y=y)
trace2 = go.Scatter(x=x, y=z)

fig = tools.make_subplots(rows=2, cols=1)

fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 2, 1)

fig['layout'].update(height=600, width=600)
plotly.offline.iplot(fig)
于 2016-03-18T14:44:40.793 回答