我想用一些文本注释图形中的条形,但如果条形图靠近并具有相当的高度,则注释高于ea.其他因而难以阅读(注释的坐标取自条形位置和高度).
如果发生碰撞,有没有办法改变其中一个?
编辑:条纹非常薄,有时非常接近,所以只是垂直对齐并不能解决问题...
图片可能会澄清一些事情:

我想在我的一个地块中指出一个距离.我想到的是他们在技术图纸中的方式,显示一个双头箭头,旁边有文字.
例:
from matplotlib.pyplot import *
hlines(7,0,2, linestyles='dashed')
hlines(11,0,2, linestyles='dashed')
hlines(10,0,2, linestyles='dashed')
hlines(8,0,2, linestyles='dashed')
plot((1,1),(8,10), 'k',) # arrow line
plot((1,1),(8,8), 'k', marker='v',) # lower arrowhead
plot((1,1),(10,10), 'k', marker='^',) # upper arrowhead
text(1.1,9,"D=1")
Run Code Online (Sandbox Code Playgroud)
这导致类似这样的事情(两个hlines不是真的需要,它们只是增加了绘图区域......): 
有没有更快的方法来做到这一点,最好是箭头在确切的位置结束,而不是低于/高于应该的位置?用于自动放置文本的额外点.
编辑:
我一直在玩,annotate但由于字符串必须被牺牲,这个解决方案对我失去了一些吸引力.感谢指出箭头风格,当我尝试类似的东西时它没有工作.我想用一个电话来编写一个小函数是没有办法做的...
我是socket编程的新手,遇到了一个令人费解的问题:
我有一个Windows程序,我无法改变(专有软件)但尝试使用tcp套接字连接到特定的IP和端口.
在我的linux盒子里,我写了一个小的python脚本来为win prog服务套接字.这工作正常,直到我杀死我在Linux上的编程.初始服务器套接字未按指定关闭,我无法重新启动程序,直到套接字被垃圾回收.
如果我尝试使用linux套接字(在单独的python脚本中),我没有问题.
这是一个最小的代码示例:
import socket
server = socket.socket()
server.bind(('192.168.0.111', 50001))
server.listen(1)
conn, addr = server.accept()
print 'Connection established'
running = True
while running:
try:
data = conn.recv(4096)
except KeyboardInterrupt:
conn.close()
running = False
else:
if data:
print data
else:
conn.close()
running = False
server.close()
Run Code Online (Sandbox Code Playgroud)
如果我用Ctrl-C杀了它,它会正常退出.但是在重新启动脚本时,我得到一个socket.error,说明该地址已被使用.大约一分钟后,程序再次运行.
我也尝试在关闭之前关闭(aka conn.shutdown(2)和server.shutdown ...),但这没有任何效果.
是否有更好的"正确"方法来关闭Windows套接字?我是否会错过一些关于套接字的基本信息?
谢谢!
编辑:我想我刚才看到了答案: 在python 2.6中关闭套接字的正确方法是什么?
虽然我使用的是python 2.5,但它仍然有效.
我最近发现了 reST/Sphinx 并尝试用它来记录我之前编写的一个 python 类。
经过一些实验,我发现我需要:math:`K_\\alpha`在使用目标时编写以获取下标中的希腊字母make latexpdf。单个\有错误。奇怪的是,其他所有希腊字母只需要一个就\可以产生所需的输出。
怎么了?
我有一些1300x1341矩阵表示的数据.我想将这个矩阵分成几个部分(例如9),以便我可以循环并处理它们.数据需要保持有序,即x [0,1]保持低于(或者如果你喜欢的话)x [0,0]以及x [1,1].
就像您对数据进行成像一样,您可以在图像上绘制2条垂直线和2条水平线来说明9个部分.
如果我使用numpys reshape(例如matrix.reshape(9,260,745)或9,260,745的任何其他组合)它不会产生所需的结构,因为上面提到的排序丢失了......
我是否误解了重塑方法还是可以这样做?
还有什么其他的pythonic/numpy方法可以做到这一点?
有一个包含形状的 3D 数据的数组,例如 (64,64,64),您如何通过此数据集绘制由点和法线给出的平面(类似于晶体学中的 hkl 平面)?类似于在 MayaVi 中通过在数据中旋转平面来完成的操作。
在大多数情况下,生成的图将包含非方形平面。这些可以用 matplotlib(某种非矩形补丁)来完成吗?
编辑:我几乎自己解决了这个问题(见下文),但仍然想知道如何在 matplotlib 中绘制非矩形补丁......?
编辑:由于下面的讨论,我重申了这个问题。
我不小心添加了几个文件后
hg add
Run Code Online (Sandbox Code Playgroud)
我想用它来回复
hg revert --all
Run Code Online (Sandbox Code Playgroud)
不幸的是,我没有做出我预期的改变,所以他们也被还原了.我可以收回那些内容吗?
我的问题当然是GIL.在我分析数据时,最好在两者之间展示一些情节(所以等待结果并不是太无聊)
但GIL阻止了这一点(这让我开始问自己,Python本来就是一个好主意).
我只能显示情节,等到用户关闭它并在此之后开始计算.显然浪费时间.
我已经尝试过子进程和多处理模块,但似乎无法让它们工作.
对这个有什么想法吗?谢谢
编辑:好的,所以它不是GIL而是show().
我的问题涉及本声明的结果:
for x in range(4), y in range(4):
print x
print y
Run Code Online (Sandbox Code Playgroud)
结果是:
[0, 1, 2, 3]
2
True
2
Run Code Online (Sandbox Code Playgroud)
似乎有一个比较涉及,我只是无法弄清楚为什么输出结构是这样的.
我完全清楚Python可以处理unicode字符串.但我希望翻译能够理解它们,以便我不必输入
拉姆达= 1.54
但
λ= 1.54
(除了保留'lambda'这一事实)
这是否会发生(或者有没有办法实现这一点)?有没有理由反对这个?
python ×8
matplotlib ×4
numpy ×2
encoding ×1
gil ×1
interpreter ×1
latex ×1
linux ×1
mercurial ×1
networking ×1
revert ×1
sockets ×1
syntax ×1
unicode ×1
windows ×1