我有一个我在ipython笔记本中使用两个导入的数据集和我为x轴制作的数组制作的情节,但颜色条有点厚,我喜欢.有没有办法让它更苗条?
#import packages
import numpy as np #for importing u array
import matplotlib.pyplot as plt #for plotting
%matplotlib inline
th = np.loadtxt("MT3_th.dat") #imports data file- theta pert.
pi = np.loadtxt("MT3_pi.dat") #imports data file- pressure pert.
k = np.loadtxt("MT3_z.dat") #imports data file- height
i = np.linspace(-16.,16.,81) #x-axis array
x, z = np.meshgrid(i, k)
th[th == 0.0] = np.nan #makes zero values for th white
clevels = [0.5, 1, 1.5, 2, 2.5, 3.]
fig = plt.figure(figsize=(12,12))
thplot = plt.contourf(x, z, th, clevels, …Run Code Online (Sandbox Code Playgroud) 我正在使用scipy.optimize.minimize来查找对使用的初始猜测相当敏感的 4D 函数的最小值。如果我稍微改变一下,解决方案就会发生很大的变化。
SO中已经有许多与此类似的问题(例如:1 , 2 , 3),但没有真正的答案。
在我的一个老问题中,zunzun.com 网站(显然不再在线)的开发人员之一解释了他们如何管理这个:
Zunzun.com 使用差分进化遗传算法 (DE) 找到初始参数估计值,然后将其传递给 scipy 中的 Levenberg-Marquardt 求解器。DE 本身实际上并不用作全局优化器,而是用作“初始参数猜测器”。
我发现最接近这个算法的是这个答案,其中一个for块用于通过随机初始猜测多次调用最小化函数。这会生成多个最小化的解决方案,最后选择最好的(最小值)一个。
是否有类似于 zuzun dev 描述的已经在 Python 中实现的内容?
python machine-learning mathematical-optimization scipy hyperparameters
我正在使用tabulate Python 包来生成一个正确的 LaTeX 格式的表格。
这是一个 MWE:
from tabulate import tabulate
table = [[r"${:.1f}\pm{:.1f}$".format(2.3564, 0.5487)],
[r"${:.1f}\pm{:.1f}$".format(45.1236, 8.00021)]
]
print tabulate(table, tablefmt="latex")
Run Code Online (Sandbox Code Playgroud)
我从这个例子中得到的是:
\begin{tabular}{l}
\hline
\$2.4\textbackslash{}pm0.5\$ \\
\$45.1\textbackslash{}pm8.0\$ \\
\hline
\end{tabular}
Run Code Online (Sandbox Code Playgroud)
当正确的格式是:
\begin{tabular}{l}
\hline
$2.4\pm0.5$ \\
$45.1\pm8.0$ \\
\hline
\end{tabular}
Run Code Online (Sandbox Code Playgroud)
即:该包是之前插入齿隙$的符号,并且在替换齿隙\pm与\textbackslash{}。
是否可以生成正确格式的表格?
为了完整起见,我正在生成高斯,这是我的实现:
from numpy import *
x=linspace(0,1,1000)
y=exp(-(x-0.5)**2/(2.0*(0.1/(2*sqrt(2*log(2))))**2))
Run Code Online (Sandbox Code Playgroud)
在0.5和的高峰fwhm=0.1.到目前为止没那么有趣.在下一步中,我使用numpys random.poisson实现计算我的数据集的泊松分布.
poi = random.poisson(lam=y)
Run Code Online (Sandbox Code Playgroud)
我有两个主要问题.
编辑:3.问题:在这种情况下,'size'变量用于什么?我已经看到了不同类型的用法,但最后他们没有给我不同的结果,但在选择错误时失败了......
编辑2:好的,从我得到的答案我认为我不够清楚(虽然它已经帮助我纠正了我做的其他一些愚蠢的错误,谢谢!).我想要做的是将poisson(白色)噪声应用于函数y.正如MSeifert在下面的帖子中所描述的,我现在使用期望值作为lam.但这只会给我带来噪音.我想我在如何应用噪声的水平上有一些理解问题(也许它与物理学相关?!).
我正在开发一个脚本,以便使用python和库进行天空测量的热图numpy, astropy.
我创建了一个星星分布图,现在我正在尝试制作热图.我的热图完成并运行良好,但我的下一步是用高斯光滑它.也就是说,通过具有色散= 2西格玛的高斯卷积数据.
问题是我没有得到一个很好的平滑热图.正如你所看到的那样,我的情节对卷积函数不好scipy和/或astropy(我编写了两种方法).
这是我的代码:
# -*- coding: utf-8 -*-
#!/usr/bin/env python
from astropy.io import fits
from astropy.table import Table
from astropy.table import Column
from astropy.convolution import convolve, Gaussian1DKernel
import numpy as np
import scipy.ndimage as sp
import matplotlib.pyplot as plt
###################################
# Importation du fichier de champ #
###################################
filename = '/home/valentin/Desktop/Field169_combined_final_roughcal.fits_traite_traiteXY_traiteXY_final'
print 'Fichier en cours de traitement' + str(filename) + '\n'
# Ouverture du fichier à l'aide d'astropy
field = fits.open(filename) …Run Code Online (Sandbox Code Playgroud) 我这个以前的(类似)的问题在与崇高3几个文件多串的搜索是回答一个办法来搜索在SublimeText多个文件多串,用正则表达式OR运算符:
Find: (string1|string2)
Where: <open folders>
Run Code Online (Sandbox Code Playgroud)
这完全适用于搜索文件,其中任一 string1或string2存在.我现在需要的是在大量文件中搜索两个字符串.即,我需要使用AND运算符.
我环顾了这个问题正则表达式:是否有AND运算符?还有这一个Regex AND运算符,并提出了以下配方:
(?=string1)(?=string2)
(?=.*string1)(?=.*string2)
(string1 string2)
(string1\&string2)
Run Code Online (Sandbox Code Playgroud)
但它们都不起作用.
所以问题是:如何使用SublimeText一次搜索多个文件中的多个字符串?
(我正在使用SublimeText 3103)
添加:字符串不一定在同一行.它们可以位于每个文件中的任何位置.例如,这个文件:
string1 dfgdfg d dfgdf
sadasd
asdasd
dfgdfg string2 dfgdfg
Run Code Online (Sandbox Code Playgroud)
应该触发一场比赛.
我已经安装了一个virtualenv与pyenv使用Python v2.7.12。在这个 virtualenv 中,我matplotlib通过以下方式安装了v1.5.1:
pip install matplotlib
Run Code Online (Sandbox Code Playgroud)
没有问题。问题是一个简单的
import matplotlib.pyplot as plt
plt.scatter([], [])
plt.show()
Run Code Online (Sandbox Code Playgroud)
脚本无法生成绘图窗口。我在 virtualenv 中看到的后端使用:
import matplotlib
print matplotlib.rcParams['backend']
Run Code Online (Sandbox Code Playgroud)
is agg,这显然是问题的根本原因。如果我在系统范围的安装中检查后端,我会得到Qt4Agg(运行时上面的脚本显示一个绘图窗口就好了)。
SO中已经有几个类似的问题,我已经尝试了所有这些问题中给出的解决方案。
尝试使用--system-site-packages选项创建 virtualenv 。不行。
如何确保 Python 3 virtualenv 中的 matplotlib 使用 TkAgg 后端?
已安装sudo apt install tk-dev,然后使用 重新安装pip --no-cache-dir install -U --force-reinstall matplotlib。后端仍然显示为agg.
安装 Sublime Text 3 后,我尝试使用以下定义的自定义键盘快捷键 ( F5):
~/.config/sublime-text-3/Packages/User/Default (Linux).sublime-keymap
Run Code Online (Sandbox Code Playgroud)
快捷方式不起作用,我在控制台中看到以下消息:
Unable to open /home/gabriel/.config/sublime-text-3/Packages/Default/Preferences.sublime-settings
Run Code Online (Sandbox Code Playgroud)
ST 的安装目录中不仅缺少此文件,还缺少整个~/.config/sublime-text-3/Packages/Default/文件夹。但是如果我打开Preferences/Key Bindings,默认的键盘映射文件会正确打开:
并且为该文件显示的路径在~/.config/sublime-text-3/Packages/Default/文件夹中,我知道它不存在(!)
这里发生了什么?我怎样才能解决这个问题?
我需要生成一个类似于本示例中显示的图像:
所不同的是,代替具有以二维分散的点,我有numpy的的histogram2d生成并与使用绘制一个二维直方图imshow和gridspec:
如何将此 2D 直方图投影到水平和垂直直方图(或曲线)中,使其看起来对齐,就像第一张图像一样?
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
data = # Uploaded to http://pastebin.com/tjLqM9gQ
# Create a meshgrid of coordinates (0,1,...,N) times (0,1,...,N)
y, x = np.mgrid[:len(data[0, :, 0]), :len(data[0, 0, :])]
# duplicating the grids
xcoord, ycoord = np.array([x] * len(data)), np.array([y] * len(data))
# compute histogram with coordinates as x,y
h, xe, ye = np.histogram2d(
xcoord.ravel(), ycoord.ravel(),
bins=[len(data[0, 0, :]), len(data[0, :, 0])], …Run Code Online (Sandbox Code Playgroud) 我需要在一个图中绘制多个数据集。数据集的数量各不相同,因此我不知道会有多少数据集。
如果我只画图例,我会得到这个(下面的 MCVE):
我怎样才能知道plt.legend()只绘制前 10 个图例?我查看了plt.legends()类,但似乎没有参数可以设置这样的值。
MCVE:
import numpy as np
import matplotlib.pyplot as plt
dataset = []
for _ in range(20):
dataset.append(np.random.uniform(0, 1, 2))
lbl = ['adfg', 'dfgb', 'cgfg', 'rtbd', 'etryt', 'frty', 'jklg', 'jklh',
'ijkl', 'dfgj', 'kbnm', 'bnmbl', 'qweqw', 'fghfn', 'dfg', 'hjt', 'dfb',
'sdgdas', 'werwe', 'dghfg']
for i, xy in enumerate(dataset):
plt.scatter(xy[0], xy[1], label=lbl[i])
plt.legend()
plt.savefig('test.png')
Run Code Online (Sandbox Code Playgroud) python ×8
matplotlib ×5
numpy ×3
sublimetext3 ×2
astropy ×1
backend ×1
histogram ×1
ipython ×1
latex ×1
plot ×1
poisson ×1
regex ×1
scipy ×1
search ×1
sublimetext ×1
virtualenv ×1