我试图通过在python
中使用windrose模块在子图中绘制风玫瑰https://pypi.python.org/pypi/windrose/
除了一些例子,没有太多的文件,所以我不知道如何使用它来绘制风玫瑰的不同子图
我的尝试总结如下:
import pandas as pd
import matplotlib.pyplot as plt
from windrose import WindroseAxes
import matplotlib.cm as cm
from time import sleep
v=df.speed
d=df.direction
f = Figure(figsize=(16,9), dpi=60)
a = f.add_subplot(131)
ax = WindroseAxes.from_ax()
a.set_axes(ax)
ax.bar(d,v, normed= True,opening=0.8, edgecolor='white')
ax.set_legend()
然后b = f.add_subplot(132)
....
等等
我的第二个问题是,
一旦我生成了图表,我想用time.sleep()或类似的东西引入暂停
我尝试了一个简单的例子:
-I plot something
-then export it to png format with f.savefig()
-then I introduce sleep(20)
-then the code continues
但是虽然它导出了正确的png但它没有显示在屏幕上并且代码继续。因为它没有引起任何错误,我想我应该在sleep()
之前或之后添加一些东西答案 0 :(得分:1)
第一个问题:您不能将另一个figure
添加到现有figure
作为subplot
(不幸的是WindroseAxes.from_ax()
创建新的figure
并且不会仅更改axis
{1}}实例)。
如果你写
fig = plt.figure(figsize=(16,9), dpi=60)
wax = WindroseAxes.from_ax(fig=fig)
ax1 = fig.add_subplot(221)
wax.contourf(wd, ws, bins=np.arange(0, 8, 1), cmap=cm.hot)
wax.set_legend()
ax2 = fig.add_subplot(222)
ax2.plot([1,2,3,4], [1,4,9,16], 'k-')
ax3 = fig.add_subplot(223)
ax3.plot([1,2,3,4], [1,10,100,1000], 'b-')
ax4 = fig.add_subplot(224)
ax4.plot([1,2,3,4], [0,0,1,1], 'g-')
第二个问题:要重新绘制您的绘图,您需要在更改绘图后添加plt.draw()
。
但是,如果您只想制作一组图片,只需在没有savefig
的情况下每次需要时拨打plt.show()
。