小编Cup*_*tor的帖子

如何在matplotlib中为子图设置xlim和ylim

我想限制matplotlib中的X和Y轴,但是对于特定的子图.我可以看到subplot图本身没有任何axis属性.我想要例如只改变第二个情节的限制!

import matplotlib.pyplot as plt
fig=plt.subplot(131)
plt.scatter([1,2],[3,4])
fig=plt.subplot(132)
plt.scatter([10,20],[30,40])
fig=plt.subplot(133)
plt.scatter([15,23],[35,43])
plt.show()
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib

152
推荐指数
1
解决办法
33万
查看次数

如何从透明背景的matplotlib导出图?

我使用matplotlib制作一些图表,不幸的是我没有白色背景导出它们.

样本图与纯白色背景

换句话说,当我导出这样的图并将其放在另一个图像的顶部时,白色背景会隐藏它背后的内容,而不是允许它透过.如何导出透明背景的图?

python plot transparency matplotlib

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

具有特定比例的二进制随机数组?

什么是有效的(可能用Matlab术语矢量化)生成随机数的零和特定比例的方法?特别是Numpy?

我的案例很特别1/3,我的代码是:

import numpy as np 
a=np.mod(np.multiply(np.random.randomintegers(0,2,size)),3)
Run Code Online (Sandbox Code Playgroud)

但是,至少对于K/NK和N是自然数的情况,是否有任何内置函数可以更有效地处理这个问题?

python arrays random numpy random-sample

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

如何在matplotlib中"关闭"imshow()的模糊效果?

我想制作概率的颜色图,但是imshow会为具有零概率的点生成模糊值.如何摆脱真实网格点周围的模糊外围?

例:

import numpy as np
import matplotlib.pyplot as plt

a=np.asarray([[  0.00000000e+00 , 1.05824446e-01 ,  2.05086136e-04,   0.00000000e+00],
[  1.05824446e-01 ,  3.15012305e-01  , 1.31255127e-01  , 1.05209188e-01],
 [  2.05086136e-04  , 1.31255127e-01 ,  0.00000000e+00 ,  0.00000000e+00],
 [  0.00000000e+00   ,1.05209188e-01  , 0.00000000e+00  , 0.00000000e+00]])
im=plt.imshow(a,extent=[0,4,0,4],origin='lower',alpha=1,aspect='auto')
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python plot numpy matplotlib

42
推荐指数
1
解决办法
3万
查看次数

用Scipy计算行方式点积两个矩阵的矢量化方式

我想尽可能快地计算相同维度的两个矩阵的行方点积.这就是我这样做的方式:

import numpy as np
a = np.array([[1,2,3], [3,4,5]])
b = np.array([[1,2,3], [1,2,3]])
result = np.array([])
for row1, row2 in a, b:
    result = np.append(result, np.dot(row1, row2))
print result
Run Code Online (Sandbox Code Playgroud)

当然输出是:

[ 26.  14.]
Run Code Online (Sandbox Code Playgroud)

numpy vectorization scipy matrix-multiplication dot-product

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

不成功附加到空的NumPy数组

我试图使用append填充一个空(不是np.empty!)数组的值,但我得到错误:

我的代码如下:

import numpy as np
result=np.asarray([np.asarray([]),np.asarray([])])
result[0]=np.append([result[0]],[1,2])
Run Code Online (Sandbox Code Playgroud)

我得到了:

ValueError: could not broadcast input array from shape (2) into shape (0)
Run Code Online (Sandbox Code Playgroud)

python arrays numpy append

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

Python的圆形直方图

我有周期性数据,并且它的分布最好围绕一个圆圈可视化.现在的问题是如何使用matplotlib进行这种可视化?如果没有,可以在Python中轻松完成吗?

我的代码将演示围绕圆圈分布的粗略近似值:

from matplotlib import pyplot as plt
import numpy as np

#generatin random data
a=np.random.uniform(low=0,high=2*np.pi,size=50)

#real circle
b=np.linspace(0,2*np.pi,1000)
a=sorted(a)
plt.plot(np.sin(a)*0.5,np.cos(a)*0.5)
plt.plot(np.sin(b),np.cos(b))
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在SX for Mathematica的问题中有几个例子: 在此输入图像描述 在此输入图像描述

python plot visualization matplotlib histogram

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

仅在matplotlib中绘制带边框的矩形

所以我在这里找到了以下代码:

from matplotlib import pyplot as plt
from matplotlib.patches import Rectangle
someX, someY = 0.5, 0.5
plt.figure()
currentAxis = plt.gca()
currentAxis.add_patch(Rectangle((someX - .1, someY - .1), 0.2, 0.2,alpha=1))
plt.show()
Run Code Online (Sandbox Code Playgroud)

这使: 在此输入图像描述

但我想要的是一个只有蓝色边框的矩形,里面是透明的.我怎样才能做到这一点?

python matplotlib

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

使用matplotlib通过样本绘制概率密度函数

我想根据我的样本绘制概率密度函数的近似值; 模拟直方图行为的曲线.我可以提供我想要的样品.

python probability matplotlib histogram

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

来自DMCichlet分布的采样中来自PyMC的FloatingPointError

在使用装饰器来定义"指数随机变量的对数"的随机对象不成功之后,我决定使用手动编写这个新分布的代码pymc.stochastic_from_dist.我想在这里实现的模型(第一个模型): 在此输入图像描述

现在,当我尝试使用MCMC Metropolis和正态分布作为提议对日志(alpha)进行采样时(如下图所示,作为采样方法),我收到以下错误:

  File "/Library/Python/2.7/site-packages/pymc/distributions.py", line 980, in rdirichlet
    return (gammas[0]/gammas[0].sum())[:-1]

FloatingPointError: invalid value encountered in divide
Run Code Online (Sandbox Code Playgroud)

虽然采样不会出错的时间,但采样直方图与本文中的采样直方图相匹配.我的分层模型是:

"""
A Hierarchical Bayesian Model for Bags of Marbles

logalpha ~ logarithm of an exponential distribution with parameter lambd
beta ~ Dirichlet([black and white ball proportions]:vector of 1's)
theta ~ Dirichlet(alpha*beta(vector))

"""

import numpy as np
import pymc
from scipy.stats import expon
lambd=1.
__all__=['alpha','beta','theta','logalpha']
#------------------------------------------------------------
# Set up pyMC model: logExponential
# 1 parameter: (alpha)

def logExp_like(x,explambda): …
Run Code Online (Sandbox Code Playgroud)

python random floating-point sampling pymc

15
推荐指数
1
解决办法
600
查看次数