我想限制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) 我使用matplotlib制作一些图表,不幸的是我没有白色背景导出它们.
换句话说,当我导出这样的图并将其放在另一个图像的顶部时,白色背景会隐藏它背后的内容,而不是允许它透过.如何导出透明背景的图?
什么是有效的(可能用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/N
K和N是自然数的情况,是否有任何内置函数可以更有效地处理这个问题?
我想制作概率的颜色图,但是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)
我想尽可能快地计算相同维度的两个矩阵的行方点积.这就是我这样做的方式:
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) 我试图使用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) 我有周期性数据,并且它的分布最好围绕一个圆圈可视化.现在的问题是如何使用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的问题中有几个例子:
所以我在这里找到了以下代码:
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)
这使:
但我想要的是一个只有蓝色边框的矩形,里面是透明的.我怎样才能做到这一点?
我想根据我的样本绘制概率密度函数的近似值; 模拟直方图行为的曲线.我可以提供我想要的样品.
在使用装饰器来定义"指数随机变量的对数"的随机对象不成功之后,我决定使用手动编写这个新分布的代码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 ×9
matplotlib ×6
numpy ×4
plot ×4
arrays ×2
histogram ×2
random ×2
append ×1
dot-product ×1
probability ×1
pymc ×1
sampling ×1
scipy ×1
transparency ×1