小编Sha*_*har的帖子

如何将颜色条添加到极坐标图(玫瑰图)?

该示例中,颜色与每个条的半径相关.如何在这个情节中添加一个颜色条?

matplotlib的例子

我的代码模仿了"玫瑰图"投影,它基本上是极坐标投影的条形图.

这是它的一部分:

angle = radians(10.)
patches = radians(360.)/angle
theta = np.arange(0,radians(360.),angle)
count = [0]*patches
for i, item in enumerate(some_array_of_azimuth_directions):
    temp = int((item - item%angle)/angle)
    count[temp] += 1
width = angle * np.ones(patches)

# force square figure and square axes looks better for polar, IMO
fig = plt.figure(figsize=(8,8))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], polar=True)

rmax = max(count) + 1

ax.set_rlim(0,rmax)
ax.set_theta_offset(np.pi/2)
ax.set_thetagrids(np.arange(0,360,10))
ax.set_theta_direction(-1)

# project strike distribution as histogram bars
bars = ax.bar(theta, count, width=width)
r_values = …
Run Code Online (Sandbox Code Playgroud)

python matplotlib colorbar rose-diagram

7
推荐指数
1
解决办法
3803
查看次数

使用 `scipy.interpolate.griddata` 进行非常慢的插值

scipy.interpolate.griddata在尝试将“几乎”有规律的网格数据插入到地图坐标中时遇到了极其缓慢的性能,以便可以绘制地图和数据,matplotlib.pyplot.imshow因为matplotlib.pyplot.pcolormesh它花费的时间太长并且alpha在其他方面表现不佳。

最好展示一个例子(输入文件可以在这里下载):

import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import griddata

map_extent = (34.4, 36.2, 30.6, 33.4)
# data corners:
lon = np.array([[34.5,        34.83806236],
                [35.74547079, 36.1173923]])
lat = np.array([[30.8,        33.29936152],
                [30.67890411, 33.17826563]])

# load saved files
topo = np.load('topo.npy')
lons = np.load('lons.npy')
lats = np.load('lats.npy')
data = np.load('data.npy')

# get max res of data
dlon = abs(np.array(np.gradient(lons))).max()
dlat = abs(np.array(np.gradient(lats))).max()

# interpolate the data to the extent …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib scipy

7
推荐指数
1
解决办法
5100
查看次数

将数据从python传递到外部命令

我已经阅读了subprocess.Popen上的所有内容,但是我想我缺少了一些东西。

我需要能够执行一个Unix程序,该程序从python脚本中创建的列表中读取数据流并将该程序的结果写入文件。在bash提示符下,我一直都没问题,但现在我尝试从python脚本中执行此操作,该脚本在进入此阶段之前会先预处理一些二进制文件和大量数据。

让我们看一个不包含所有预处理的简单示例:

import sys
from pylab import *
from subprocess import *
from shlex import split

# some arbitrary x,y points
points = [(11,31),(13,33),(15,37),(16,35),(17,38),(18,39.55)]

commandline = 'my_unix_prog option1 option2 .... > outfile'
command = split(commandline)

process = Popen(command, stdin=PIPE, stdout=PIPE, stderr=PIPE)
print process.communicate(str(points))
Run Code Online (Sandbox Code Playgroud)

在bash中执行的方式是:

echo "11 31
      13 33
      15 37
      16 35
      17 38
      18 39.55" | my_unix_prog option1 option2 .... > outfile
Run Code Online (Sandbox Code Playgroud)

数据输入到unix prog的方式也很重要,我应该格式化为两列,并用空格隔开。

任何帮助表示赞赏...

python subprocess external-process piping

5
推荐指数
1
解决办法
4610
查看次数

尝试求解简单代数方程时 sympy 挂起

我最近重新安装了我的 python 环境,以前运行速度非常快的代码现在充其量只是缓慢运行(通常只是挂起,占用越来越多的内存)。

代码挂起的点是:

solve(exp(-alpha * x**2) - 0.01, alpha)
Run Code Online (Sandbox Code Playgroud)

我已经能够使用新的 IPython 0.13.1 会话重现此问题:

In [1]: from sympy import solve, Symbol, exp
In [2]: x = 14.7296138519
In [3]: alpha = Symbol('alpha', real=True)
In [4]: solve(exp(-alpha * x**2) - 0.01, alpha)
Run Code Online (Sandbox Code Playgroud)

这适用于整数,但也很慢。在原始代码中,我循环查找不同 x 值(14.7296138519 除外)的数百个不同的 alpha,并且花费的时间不超过一秒。

有什么想法吗?

python solver sympy exp

4
推荐指数
1
解决办法
2684
查看次数

Jupyter Notebook中的输出图形大小

我刚刚将我的Jupyter版本升级到4.2.1,似乎内联数字已经变得更大了figsize.

我在想这个吗?

我可以改变它而不改变figsize吗?

matplotlib ipython jupyter jupyter-notebook

4
推荐指数
2
解决办法
2万
查看次数