我需要使用matplotlib函数ginput()在一个图中定义一个区域.然而,因为它是一个不规则的形状,并且在每个情节中都会有所不同,所以我不能确定手前会有多少个点,即
x = randn(10,10)
imshow(x)
n = I don't know yet
points = ginput(n)
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何去做?谢谢戴夫
我正在使用scipys gaussian_kde获取某些双峰数据的概率密度。但是,由于我的数据是有角度的(以度为单位的方向),所以当值接近极限时会出现问题。下面的代码给出了两个示例kde,当域为0-360时,由于无法处理数据的循环性质,因此处于估计状态。pdf需要在单位圆上定义,但我在scipy.stats中找不到适合此类数据的任何内容(存在冯·米斯分布,但仅适用于单峰数据)。外面有没有人遇到过这个?是否有任何可用于估算单位圆上的双峰pdf的信息(基于python的首选)?
import numpy as np
import scipy as sp
from pylab import plot,figure,subplot,show,hist
from scipy import stats
baz = np.array([-92.29061004, -85.42607874, -85.42607874, -70.01689348,
-63.43494882, -63.43494882, -70.01689348, -70.01689348,
-59.93141718, -63.43494882, -59.93141718, -63.43494882,
-63.43494882, -63.43494882, -57.52880771, -53.61564818,
-57.52880771, -63.43494882, -63.43494882, -92.29061004,
-16.92751306, -99.09027692, -99.09027692, -16.92751306,
-99.09027692, -16.92751306, -9.86580694, -8.74616226,
-9.86580694, -8.74616226, -8.74616226, -2.20259816,
-2.20259816, -2.20259816, -9.86580694, -2.20259816,
-2.48955292, -2.48955292, -2.48955292, -2.48955292,
4.96974073, 4.96974073, 4.96974073, 4.96974073,
-2.48955292, -2.48955292, -2.48955292, -2.48955292,
-2.48955292, -9.86580694, -9.86580694, -9.86580694,
-16.92751306, -19.29004622, -19.29004622, -26.56505118,
-19.29004622, -19.29004622, -19.29004622, -19.29004622]) …
Run Code Online (Sandbox Code Playgroud) 我试图绘制3个子图,它们之间没有任何空白区域.默认的y轴刻度标签使用显示在y轴右上角的刻度(下例中的1e-8),除了下面的两个绘图与上图重叠之外,这将是正常的.有人知道怎么修这个东西吗?下面是一个小例子.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
from matplotlib.ticker import MaxNLocator
x = np.arange(0,200)
y = np.random.rand(200) * 10e-8
fig = plt.figure(figsize=(10,15))
gs1 = gridspec.GridSpec(3, 3)
gs1.update(left=0.1, right=0.9, bottom=0.5, hspace=0.0)
ax0a = plt.subplot(gs1[0, :])
ax0b = plt.subplot(gs1[1, :])
ax0c = plt.subplot(gs1[2, :])
ax0a.set_xticklabels([])
ax0b.set_xticklabels([])
ax0a.plot(x,y)
nbins = len(ax0a.get_xticklabels())
ax0a.yaxis.set_major_locator(MaxNLocator(nbins=nbins, prune='upper'))
ax0b.plot(x,y)
ax0b.yaxis.set_major_locator(MaxNLocator(nbins=nbins, prune='upper'))
ax0c.plot(x,y)
ax0c.yaxis.set_major_locator(MaxNLocator(nbins=nbins, prune='upper'))
Run Code Online (Sandbox Code Playgroud)
所以一个解决方案是使用mtick,
import matplotlib.ticker as mtick
ax0a.yaxis.set_major_formatter(mtick.FormatStrFormatter('%.1e'))
ax0b.yaxis.set_major_formatter(mtick.FormatStrFormatter('%.1e'))
ax0c.yaxis.set_major_formatter(mtick.FormatStrFormatter('%.1e'))
Run Code Online (Sandbox Code Playgroud)
但我希望能够将刻度向左移动,以便在可能的情况下在轴外.
我试图在这里安装scikits.nufft包 我下载zip文件,解压缩并cd到目录.它包含一个setup.py文件,所以我运行
python setup.py install
Run Code Online (Sandbox Code Playgroud)
但它给了我与我的PYTHONPATH相关的以下错误
sudo python setup.py install
sudo: unable to resolve host Lenovo
/usr/local/lib/python2.7/dist-packages/distribute-0.6.31-py2.7.egg/setuptools/command/install_scripts.py:3: UserWarning: Module dap was already imported from None, but /usr/lib/python2.7/dist-packages is being added to sys.path
from pkg_resources import Distribution, PathMetadata, ensure_directory
running install
Checking .pth file support in /usr/local/lib/python2.7/site-packages/
/usr/bin/python -E -c pass
TEST FAILED: /usr/local/lib/python2.7/site-packages/ does NOT support .pth files
error: bad install directory or PYTHONPATH
You are attempting to install a package to a directory that is not
on …
Run Code Online (Sandbox Code Playgroud) 我有一个形状数组(201,201),我想在数据中绘制一些横截面,但我无法访问相关点.例如,我想绘制由图中的线给出的横截面,
from pylab import *
Z = randn(201,201)
x = linspace(-1,1,201)
X,Y = meshgrid(x,x)
pcolormesh(X,Y,Z)
plot(x,x*.5)
Run Code Online (Sandbox Code Playgroud)
我想在不同的方向上绘制这些,但如果有帮助的话,它们总会通过原点...
我正在尝试创建一个在径向轴上具有对数刻度的极坐标图,但是我一直遇到错误。下面是一些示例代码和错误。在笛卡尔坐标系中似乎工作正常,有人知道发生了什么吗?
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cm as cm
bazbins = np.linspace(0, 2*np.pi, 360)
fbins = np.logspace(np.log10(0.05), np.log10(0.5), 101)
theta, r = np.meshgrid(bazbins, fbins)
# Set up plot window
fig, ax = plt.subplots(figsize=(12,9))#, subplot_kw=dict(projection='polar'))
# polar
ax.set_theta_zero_location('N')
ax.set_theta_direction(-1)
ax.set_rscale('log')
# carthesia
#ax.set_yscale('log')
# Plot data
#ax.pcolormesh(theta, r, r)
plt.gca().invert_yaxis()
ax.contourf(theta, r, r)
ax.set_ylim((0.0, 0.5))
plt.show()
Run Code Online (Sandbox Code Playgroud)
Tkinter回调中的异常:
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1413, in __call__
return self.func(*args)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 236, in resize
self.show() …
Run Code Online (Sandbox Code Playgroud) 我试图在matplotlib图中为文本框设置动画,但似乎无法使其正常工作.任何人都知道如何做到这一点?一个例子如下.
from matplotlib import animation
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.basemap import Basemap
fig = plt.figure()
ax = fig.add_subplot(111)
times = ['first', 'second', 'third']
time_text = text(.5, .5, '', fontsize=15)
def updatefig(num):
global mt
mt = text(.5, .5, times[num], fontsize=15)
anim = animation.FuncAnimation(fig, updatefig, frames=len(times)-1, blit=True, init_func=init)
Run Code Online (Sandbox Code Playgroud)