我有一个我想要孵化的区域,它与现有的虚线的绘图线(相同颜色)相邻.
但是,当我使用fill_between该区域进行孵化时,还会在其周围绘制边框.此边框似乎与创建阴影线的线共享属性,因此我无法将edgecolour设置为"none"或将linestyle设置为" - ",因为阴影线同样受到影响.
import matplotlib.pyploy as plt
plt.plot([0,1],[0,1],ls="--",c="b")
plt.fill_between([0,1],[0,1],color="none",hatch="X",edgecolor="b")
plt.show()
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我希望从0到1,1的对角线是虚线.
提前谢谢了.
我可以成功地将输出重定向到文件,但是这似乎覆盖了文件的现有数据:
import subprocess
outfile = open('test','w') #same with "w" or "a" as opening mode
outfile.write('Hello')
subprocess.Popen('ls',stdout=outfile)
Run Code Online (Sandbox Code Playgroud)
将从'Hello'文件中删除该行.
我想一个解决方法是将输出存储在别处作为字符串或其他东西(它不会太长),并手动附加outfile.write(thestring)- 但我想知道我是否遗漏了模块内的一些方便这一点.
我目前正在使用numpy.polyfit(x,y,deg)来将多项式拟合到实验数据.然而,我想拟合一个基于点的误差使用加权的多项式.
我找到了使用权重的scipy.curve_fit,我想我可以将函数'f'设置为我所需顺序的多项式,并将我的权重放在'sigma'中,这应该达到我的目标.
我想知道还有另一个更好的方法吗?
非常感谢.
我正在将Perl(其中我知之甚少)脚本移动到python.
$path = $ENV{ 'SOME_NAME' } || die " SOME_NAME ENV VARIABLE NOT FOUND\n";
Run Code Online (Sandbox Code Playgroud)
我可以(希望)看到这一行做了什么,要么将变量'path'设置为环境变量'SOME_NAME',要么失败,然后向用户输出错误消息.(附注:任何人都知道如何让搜索引擎搜索像'||'这样的特殊字符?)
我试图以"pythonic"的方式实现它(比请求更容易请求宽恕)使用:
try:
path = os.environ['SOME_NAME']
except KeyError,e:
print "SOME_NAME ENVIRONMENT VARIABLE NOT FOUND\n"
raise e
Run Code Online (Sandbox Code Playgroud)
但这看起来相当麻烦,特别是当我为3个不同的环境变量做这件事时.
任何想法,如果有更好的实施,或者你会说这是"pythonic"的方式吗?
非常感谢
我已经为Windows安装了Anaconda 2.2.0并通过以下方式创建了一个虚拟环境:
> conda create -n my-env anaconda
Run Code Online (Sandbox Code Playgroud)
环境是成功创建的,我在我的envinronments列表中看到它(实际上目录在Anaconda\envs ..)
> conda info -e
# conda environments:
#
my-env D:\Anaconda\envs\my-env
root * D:\Anaconda
Run Code Online (Sandbox Code Playgroud)
但是,当运行activate.bat脚本来切换envinronment时,虽然看起来成功但实际上并没有进行切换:
> activate.bat my-env
Activating environment "astropy-dev"...
> conda list -e
# conda environments:
#
my-env D:\Anaconda\envs\my-env
root * D:\Anaconda
Run Code Online (Sandbox Code Playgroud)
随着*指示活跃的环境.
我在Windows上看到了conda激活的一些问题,但没有发现这个特定的问题.
有关详细信息:我希望复制整个Anaconda软件包分发版,然后在一个软件包上安装开发版.
我有一个在x轴(data["obs_date"])上有日期的散景图,我希望顶部的另一个x轴覆盖相同的范围,但以不同的格式显示(mjd下图).
我试图添加第二个轴:
plot.extra_x_ranges = {"MJD":
Range1d(start=Time(min(data["obs_date"])).mjd,
end=Time(max(data["obs_date"])).mjd)}
plot.add_layout(LinearAxis(x_range_name="MJD", axis_label="MJD",
axis_label_text_font_size="16pt"),
"above")
Run Code Online (Sandbox Code Playgroud)
然而,由于背景虚化增加了一个小的缓冲区,以情节的限制,使用min max的data["obs_date"]为这个新中轴线的限制给了我一个小胶印机-下面的图片16 Jan 2018应该一致58134.当我只有一点绘图时,它也会导致它破裂.
如何设置新轴的极限,以便"了解"主轴的极限?来自matplotlib背景,我想我正在寻找的等价物ax.get_xlim().
我有源 ( src) 图像,我希望dst使用仿射变换对齐到目标 ( ) 图像,同时在对齐过程中保留两个图像的完整范围(甚至是非重叠区域)。
我已经能够计算仿射变换旋转和偏移矩阵,我将其提供给scipy.ndimage.interpolate.affine_transform恢复dst对齐的src图像。
问题在于,当图像未完全重叠时,生成的图像将被裁剪为仅两个图像的公共足迹。我需要的是放置在同一像素坐标系上的两个图像的完整范围。这个问题几乎是这个问题的重复- 那里的优秀答案和存储库为 OpenCV 转换提供了这一功能。不幸的是我需要这个来scipy实现。
太晚了,在多次碰壁试图将上述问题的答案翻译为 后scipy,我遇到了这个问题并随后遵循了这个问题。后一个问题确实让我们对仿射变换的奇妙世界有了一些了解scipy,但我还无法满足我的特殊需求。
src从到 的变换dst可以具有平移和旋转。我只能让翻译起作用(下面显示了一个示例),并且我只能让旋转起作用(主要是围绕下面的内容进行黑客攻击并从使用reshape中的参数中获取灵感scipy.ndimage.interpolation.rotate)。然而,将两者结合起来我彻底迷失了。我试图计算什么应该是正确的offset(再次参见这个问题的答案),但我无法让它在所有情况下工作。
填充仿射变换的仅翻译工作示例,主要遵循此存储库,在这个答案中进行了解释:
from scipy.ndimage import rotate, affine_transform
import numpy as np
import matplotlib.pyplot as plt
nblob = 50
shape = (200, 100)
buffered_shape = (300, …Run Code Online (Sandbox Code Playgroud) 我最近搬到了emacs,我习惯于/喜欢突出显示的数字.我从这里开始的快速黑客将以下内容放入我的.emacs:
(add-hook 'after-change-major-mode-hook
'(lambda () (font-lock-add-keywords
nil
'(("\\([0-9]+\\)"
1 font-lock-warning-face prepend)))))
Run Code Online (Sandbox Code Playgroud)
这提供了一个良好的开端,即突出显示任何数字.但是,我是一个完整的正则表达式初学者,理想情况下会喜欢以下行为:
不幸的是,这看起来非常像一个"为我做这个"的问题,我不愿意发布,但到目前为止我还没有取得任何体面的进展.
据我所知,发现[^a-zA-Z][0-9]+[^a-zA-Z]除了字母之外的任何东西(例如等号)都匹配,但所有这一切都包括突出显示中的相邻符号.我不知道如何判断它"只会突出显示数字,如果两边都没有字母".
当然,我无法想象正则表达式是复杂语法高亮显示的方式,所以欢迎在emacs创意中任何好的数字突出显示,
任何帮助非常感谢.(如果它有任何区别,这是在Python编码时使用.)
基本上我想要这个,但是当情节加载时,一些图例条目已经被静音或隐藏,用户点击以显示它们。

我试图寻找 Bokeh 的文档,但找不到我需要的设置。
我一直在关注此处对输入框的验证。下面的代码来自带有附加条件的答案,即如果输入的值是,'Q'则程序将添加'test'到 Entry 值的开头。
但是,一旦插入此值,所有验证似乎都将超出窗口,并且条目允许大写值。对我的程序进行的一些测试显示验证命令(OnValidate在本例中)不会在 Entry 的任何其他事件(键、焦点输入/输出等)上被调用。
import Tkinter as tk
class MyApp():
def __init__(self):
self.root = tk.Tk()
vcmd = (self.root.register(self.OnValidate),
'%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W')
self.entry = tk.Entry(self.root, validate="key",
validatecommand=vcmd)
self.entry.pack()
self.root.mainloop()
def OnValidate(self, d, i, P, s, S, v, V, W):
if S == "Q":
self.entry.insert(0,"test")
# only allow if the string is lowercase
return (S.lower() == S)
app=MyApp()
Run Code Online (Sandbox Code Playgroud)
我这样做的原因是我希望 Entry 显示一个默认值,如果它的值在用户进行任何更改后保留为空。(即我的情况是if not P在焦点上)
任何想法如何实现这一点或上面出了什么问题,非常感谢。
python ×9
bokeh ×2
numpy ×2
scipy ×2
anaconda ×1
conda ×1
emacs ×1
matplotlib ×1
opencv ×1
perl ×1
popen ×1
regex ×1
subprocess ×1
tk-toolkit ×1
tkinter ×1
validation ×1
windows ×1