小编Gab*_*iel的帖子

Matplotlib - 强制绘图显示然后返回主代码

这是我所追求的MWE,改编自这个问题:

from matplotlib.pyplot import plot, draw, show

def make_plot():
    plot([1,2,3])
    draw()
    print 'continue computation'

print('Do something before plotting.')
# Now display plot in a window
make_plot()

answer = raw_input('Back to main and window visible? ')
if answer == 'y':
    print('Excellent')
else:
    print('Nope')

show()
Run Code Online (Sandbox Code Playgroud)

我想要的是:我调用函数来创建绘图,出现绘图窗口,然后我回到提示符,这样我就可以输入一些值(基于刚才显示的图像)并继续执行代码(窗口可以关闭或保持在那里,我不在乎).

我得到的是,带有绘图的窗口仅代码完成出现,这是不好的.


加1

我尝试了以下相同的结果,绘图窗口出现在代码的末尾而不是之前:

from matplotlib.pyplot import plot, ion, draw

ion() # enables interactive mode
plot([1,2,3]) # result shows immediately (implicit draw())
# at the end call show to ensure window …
Run Code Online (Sandbox Code Playgroud)

python matplotlib enthought

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

快速任意分布随机抽样

random模块(http://docs.python.org/2/library/random.html)具有几个固定的函数来随机抽样.例如,random.gauss将使用给定的均值和西格玛值对具有正态分布的随机点进行采样.

我正在寻找一种方法来提取一些N用我自己的分布的给定区间之间随机样本尽可能快地python.这就是我的意思:

def my_dist(x):
    # Some distribution, assume c1,c2,c3 and c4 are known.
    f = c1*exp(-((x-c2)**c3)/c4)
    return f

# Draw N random samples from my distribution between given limits a,b.
N = 1000
N_rand_samples = ran_func_sample(my_dist, a, b, N)
Run Code Online (Sandbox Code Playgroud)

这里ran_func_sample是我后和a, b是从中可以得出样本的限制.有那种东西python吗?

python random performance

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

如何在崇高中改变右侧边栏(miniMap)的颜色?

右侧边栏中有一个矩形区域,显示您在整个文件的上下文中所处的当前代码块,但是有点难以看到,有人知道如何使颜色更明显吗?

如下图所示

sublimetext sublimetext2 sublimetext3

18
推荐指数
1
解决办法
4643
查看次数

从statsmodels OLS结果打印'std err'值

(抱歉要问,但http://statsmodels.sourceforge.net/目前已关闭,我无法访问文档)

我正在使用线性回归statsmodels,基本上:

import statsmodels.api as sm
model = sm.OLS(y,x)
results = model.fit()
Run Code Online (Sandbox Code Playgroud)

我知道我可以打印出完整的结果集:

print results.summary()
Run Code Online (Sandbox Code Playgroud)

输出如下:

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       0.952
Model:                            OLS   Adj. R-squared:                  0.951
Method:                 Least Squares   F-statistic:                     972.9
Date:                Mon, 20 Jul 2015   Prob (F-statistic):           5.55e-34
Time:                        15:35:22   Log-Likelihood:                -78.843
No. Observations:                  50   AIC:                             159.7
Df Residuals:                      49   BIC:                             161.6
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
x1             1.0250      0.033 …
Run Code Online (Sandbox Code Playgroud)

python io statsmodels

18
推荐指数
2
解决办法
9673
查看次数

gnuplot - 仅在图例/键中增加点的大小

我有一个如下图:

图片

我想增加图例中点的大小(是图例还是键?),但不增加图中点的大小.它在图片中得到了更好的解释.这可以实现吗?

gnuplot

17
推荐指数
1
解决办法
5827
查看次数

在嘈杂的2d阵列中进行峰值检测

我试图python尽可能接近返回图像中最明显聚类的中心,如下图所示:

图片

在我之前的问题中,我问过如何获得二维数组的全局最大值和局部最大值,并且给出的答案完美无缺.问题在于我可以通过平均使用不同的bin大小获得的全局最大值得到的中心估计总是稍微偏离我用眼睛设置那个,因为我只考虑最大的bin而不是一最大的bin (就像一个人的眼睛).

我尝试将这个问题答案适应我的问题,但事实证明我的图像太嘈杂,无法使算法工作.这是我实现该答案的代码:

import numpy as np
from scipy.ndimage.filters import maximum_filter
from scipy.ndimage.morphology import generate_binary_structure, binary_erosion
import matplotlib.pyplot as pp

from os import getcwd
from os.path import join, realpath, dirname

# Save path to dir where this code exists.
mypath = realpath(join(getcwd(), dirname(__file__)))
myfile = 'data_file.dat'

x, y = np.loadtxt(join(mypath,myfile), usecols=(1, 2), unpack=True)
xmin, xmax = min(x), …
Run Code Online (Sandbox Code Playgroud)

python numpy image-processing matplotlib

17
推荐指数
2
解决办法
7926
查看次数

找到从点到复杂曲线的最小距离

我有一个复杂的曲线定义为表中的一组点,如此(完整的表在这里):

#  x   y
1.0577  12.0914
1.0501  11.9946
1.0465  11.9338
...
Run Code Online (Sandbox Code Playgroud)

如果我使用命令绘制此表:

plt.plot(x_data, y_data, c='b',lw=1.)
plt.scatter(x_data, y_data, marker='o', color='k', s=10, lw=0.2)
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

在此输入图像描述

我手动添加红点和段的地方.我需要的是一种计算每个点的那些段的方法,即:找到从该2D空间中的给定点到插值曲线的最小距离的方法.

我不能使用到数据点本身的距离(产生蓝色曲线的黑点),因为它们不是以相等的间隔定位,有时它们是接近的,有时它们相距很远,这深深地影响了我的结果.线.

由于这不是一个表现良好的曲线,我不能确定我能做什么.我尝试使用UnivariateSpline进行内插,但它返回的非常差:

# Sort data according to x.
temp_data = zip(x_data, y_data)
temp_data.sort()
# Unpack sorted data.
x_sorted, y_sorted = zip(*temp_data)

# Generate univariate spline.
s = UnivariateSpline(x_sorted, y_sorted, k=5)
xspl = np.linspace(0.8, 1.1, 100)
yspl = s(xspl)

# Plot.
plt.scatter(xspl, yspl, marker='o', color='r', s=10, lw=0.2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我也试过增加插值点的数量但是弄得一团糟:

# Sort data according …
Run Code Online (Sandbox Code Playgroud)

python interpolation numpy spline scipy

16
推荐指数
2
解决办法
6686
查看次数

在Ubuntu 12.04上升级到numpy 1.8.0

我运行Ubuntu 12.04自带其默认使用NumPy 1.6.0(我有,其实,Python 2.7.3安装).由于这个问题的答案,polyfit()得到了一个意想不到的关键字参数'w',我需要升级它.

我从这里下载了.tar.gz版本的软件包,解压缩,移动到文件夹中并运行命令:1.8.0

python setup.py build --fcompiler=gnu95
python setup.py install --user
Run Code Online (Sandbox Code Playgroud)

用户指南和此问题中所述:在Ubuntu上构建NumPy 1.7.1.

这导致NumPy不再加载Spyder,现在显示错误:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/spyderlib/scientific_startup.py", line 16, in <module>
    from pylab import *  #analysis:ignore
  File "/usr/local/lib/python2.7/dist-packages/pylab.py", line 1, in <module>
    from matplotlib.pylab import *
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/__init__.py", line 165, in <module>
    from matplotlib.rcsetup import (defaultParams,
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/rcsetup.py", line 20, in <module>
    from …
Run Code Online (Sandbox Code Playgroud)

python installation ubuntu numpy upgrade

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

用中值替换numpy数组中的零

我有一个像这样的numpy数组:

foo_array = [38,26,14,55,31,0,15,8,0,0,0,18,40,27,3,19,0,49,29,21,5,38,29,17,16]
Run Code Online (Sandbox Code Playgroud)

我想用整个数组的中值替换所有零(其中零值不包括在中位数的计算中)

到目前为止,我有这样的事情:

foo_array = [38,26,14,55,31,0,15,8,0,0,0,18,40,27,3,19,0,49,29,21,5,38,29,17,16]
foo = np.array(foo_array)
foo = np.sort(foo)
print "foo sorted:",foo
#foo sorted: [ 0  0  0  0  0  3  5  8 14 15 16 17 18 19 21 26 27 29 29 31 38 38 40 49 55]
nonzero_values = foo[0::] > 0
nz_values = foo[nonzero_values]
print "nonzero_values?:",nz_values
#nonzero_values?: [ 3  5  8 14 15 16 17 18 19 21 26 27 29 29 31 38 38 40 49 55]
size = …
Run Code Online (Sandbox Code Playgroud)

python arrays replace numpy conditional-statements

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

我应该将我的Git文件夹保存在Dropbox之外吗?

到目前为止,我通过将其保存在我的Dropbox文件夹中来管理我的代码,仅此而已.最近我的代码在规模和复杂性方面都在增长,我想知道如果设置一个GitHub或Bitbucket帐户来更有效地管理它是不是更好.

我知道Git和Dropbox之间已有很多关于各种混音的问题; 这正是令我困惑的原因.有人说这是一个好主意,而其他人则认为这是一个糟糕的主意.

我只想知道:如果我决定使用GitHub或Bitbucket建立一个git存储库,我应该将我的.git文件夹移到Dropbox文件夹之外吗?

git github bitbucket dropbox

15
推荐指数
2
解决办法
6081
查看次数