小编The*_*tor的帖子

如何在Matplotlib中绘制同一图上的多个函数?

如何在域中,在同一图中绘制以下3个函数(即sin,cos和添加)t

from numpy import *
import math
import matplotlib.pyplot as plt

t = linspace(0, 2*math.pi, 400)

a = sin(t)
b = cos(t)
c = a + b
Run Code Online (Sandbox Code Playgroud)

python graph function matplotlib

86
推荐指数
3
解决办法
32万
查看次数

生成复制任意分布的随机数

我有数据,其中我有一个变量z,包含大约4000个值(从0.0到1.0),直方图看起来像这样.

在此输入图像描述

现在我需要生成一个随机变量,调用它random_z应该复制上面的分布.

到目前为止,我所尝试的是生成一个以1.0为中心的正态分布,这样我就可以删除1.0以上的所有内容,以获得类似的分布.我一直在使用numpy.random.normal但问题是我无法将范围设置为0.0到1.0,因为通常正态分布的均值= 0.0且std dev = 1.0.

还有另一种方法可以在Python中生成此分发吗?

python random numpy

14
推荐指数
3
解决办法
3921
查看次数

Python在给定条件的情况下查找列表的索引

我有一个清单,让我们说:

list_A = [0,0,0,1.0,2.0,3.0,2.0,1.0,0,0,0]
Run Code Online (Sandbox Code Playgroud)

我想找到list_A> 0的这个列表的最小和最大索引.

即在上面的例子中,它将是3和7.

对于其他单调增加的列表,我一直在使用np.searchsorted,就像np.searchsorted(list,[0.5,1.0])找到列表所在的索引一样between 0.5 and 1.0.

但是这种情况完全不同,在np.searchsorted这里不起作用,或者它可能以我不知道的方式进行!

python numpy list indices python-2.7

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

Matplotlib下标

我知道我们可以在matplotlib中生成一个单独的下标

$r_i 
Run Code Online (Sandbox Code Playgroud)

会给我一个以"我"作为下标的r.

但我想生成一个带有3或4个字母的下标,比如r_ijk应该给我一个以"ijk"作为下标的r.

当我执行上述操作时,我只获得第一个("i")作为下标,其余("j"和"k")正在成为正常的脚本.

python matplotlib subscript

6
推荐指数
1
解决办法
8023
查看次数

2D图的置信区域为1sigma

我有两个使用matplotlib散射函数绘制的变量.在此输入图像描述

I would like to show the 68% confidence region by highlighting it in the plot.我知道要在直方图中显示它,但我不知道如何为这样的2D图(x vs y)做这个.在我的情况下,x is Massy is Ngal Mstar+2.

我正在寻找的示例图像如下所示:

在这里,他们使用浅蓝色显示了使用深蓝色和95%置信区域的68%置信区域.

可以使用其中一个scipy.stats模块实现吗?

在此输入图像描述

python matplotlib confidence-interval

6
推荐指数
2
解决办法
2593
查看次数

在相同的段中切圆,Python

我在天空中有一组近10000点.它们使用天空中的RA(右上升)和DEC(赤纬)绘制.绘制时,它们采用圆形.

在此输入图像描述

我想要做的是将圆切成8个相等的部分,一次删除一个部分并使用其余部分进行一些计算.

为此,我想到了这个插图,即使用弧切片.

我知道弧的方程式由下式给出:

S = r * theta
Run Code Online (Sandbox Code Playgroud)

哪里

r --> radius
theta --> angle (in our case 45 degrees)
Run Code Online (Sandbox Code Playgroud)

我会以某种方式喜欢这样做:

slice1 = []
for a,b in zip(ra,dec):
    if a>some value and a<some value and b>some value and b<some value:
        slice1.append(a,b)
Run Code Online (Sandbox Code Playgroud)

如果它们是正方形,则变得非常简单,并且可以立即应用上述等式.

所以一旦我得到了切片,我就可以做一个numpy.where()找出我圈子的其余部分.

我只需提一下即可轻松将其切成四片min(RA),max(RA),min(DEC) and max(DEC).我为第一象限做的一个这样的例子会给我这样的:

RA>0.0 and RA<max(RA) DEC>0.0 and DEC<max(DEC)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我不知道如何在我的情况下这样做(即进入8个象限!!),其中我只有我的数据点的x,y坐标!

python geometry astronomy computational-geometry

6
推荐指数
2
解决办法
1589
查看次数

在scipy.optimize.curve_fit中使用absolute_sigma参数

为了执行合适,我目前正在使用curve_fitfrom scipy.optimize.

我已经计算了与我的每个相关的错误ydata,我想将sigma = y_errors数据中计算出的当前值添加到拟合中,

即最小化sum( ((f(xdata, *popt) - ydata) / sigma)**2 )而不是仅仅sum( (f(xdata, *popt) - ydata)).

我可以看到可以sigma在文档中分配参数.我不清楚的是absolute_sigma参数.文档中给出的解释对我来说很混乱.

我应该设置absolute_sigma= = True吗?或者它应该设置为False如果我需要考虑y_errors与我的每一个相关联ydata

python curve-fitting scipy

6
推荐指数
1
解决办法
5006
查看次数

scipy.integrate.quad 在大范围内给出错误的结果

我正在尝试对两个“半”正态分布的总和进行积分。scipy.integrate.quad当我尝试在小范围内进行积分时工作正常,但在大范围内进行积分时返回 0。这是代码:

mu1 = 0
mu2 = 0
std1 = 1
std2 = 1

def integral_fun(x):
    nor1 = 0.5 * ((1 / (np.sqrt(2 * np.pi) * std1)) * (np.e ** ((-(x-mu1) ** 2) / (2 * std1 **2))))
    nor2 = 0.5 * ((1 / (np.sqrt(2 * np.pi) * std2)) * (np.e ** ((-(x-mu2) ** 2) / (2 * std2 **2))))
    return nor1 + nor2


integrate.quad(integral_fun, -5, 5)
Out[54]: (0.9999994266968564, 8.668320228277793e-10)

integrate.quad(integral_fun, -10, 10)
Out[55]: (1.0000000000000002, 8.671029607900576e-10)

integrate.quad(integral_fun, -100000, …
Run Code Online (Sandbox Code Playgroud)

python integration scipy quad python-3.x

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

如何制作只有文字的图例

我有两个要为其制作传奇的情节,现在它们看起来像这样: 在此处输入图片说明

我只希望“C3H8”和“CO2”出现在图例中,不包括蓝色框。现在我正在使用该matplotlib.patches模块。还有什么我可以用的吗?

python plot text matplotlib legend

5
推荐指数
2
解决办法
4255
查看次数

Python正则表达式编译和搜索带有数字和单词的字符串

我有三个字符串,其中包含街道名称和公寓号的信息。

"32 Syndicate street""Street 45 No 100""15, Tom and Jerry Street"

这里,

"32 Syndicate street" -> {"street name": "Syndicate street", "apartment number": "32"}
"Street 45 No 100" -> {"street name": "Street 45", "apartment number": "No 100"}
"15, Tom and Jerry Street" -> {"street name": "Tom and Jerry Street", "apartment number": "15"}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 Python 的正则表达式分别获取街道名称和公寓号。这是我当前的代码,它有问题:

import re 
for i in ["32 Syndicate street","Street 45 No 100","15, Tom and Jerry Street"]:
    ###--- write patterns for street names
    pattern_street …
Run Code Online (Sandbox Code Playgroud)

python regex python-3.x python-re

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