小编Ban*_*Gap的帖子

Matplotlib重叠注释

我想用一些文本注释图形中的条形,但如果条形图靠近并具有相当的高度,则注释高于ea.其他因而难以阅读(注释的坐标取自条形位置和高度).

如果发生碰撞,有没有办法改变其中一个?

编辑:条纹非常薄,有时非常接近,所以只是垂直对齐并不能解决问题...

图片可能会澄清一些事情: 条形图案

python matplotlib

36
推荐指数
3
解决办法
2万
查看次数

在技​​术图纸中绘制距离箭头

我想在我的一个地块中指出一个距离.我想到的是他们在技术图纸中的方式,显示一个双头箭头,旁边有文字.

例:

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但由于字符串必须被牺牲,这个解决方案对我失去了一些吸引力.感谢指出箭头风格,当我尝试类似的东西时它没有工作.我想用一个电话来编写一个小函数是没有办法做的...

python matplotlib

20
推荐指数
2
解决办法
1万
查看次数

Python套接字没有正确关闭连接

我是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,但它仍然有效.

python sockets linux windows networking

9
推荐指数
1
解决办法
2万
查看次数

在 reStructuredText 中,希腊字母需要“\\”,当目标是 pdf 时,其他希腊字母只需“\”

我最近发现了 reST/Sphinx 并尝试用它来记录我之前编写的一个 python 类。

经过一些实验,我发现我需要:math:`K_\\alpha`在使用目标时编写以获取下标中的希腊字母make latexpdf。单个\有错误。奇怪的是,其他所有希腊字母只需要一个就\可以产生所需的输出。

怎么了?

latex restructuredtext python-sphinx

7
推荐指数
2
解决办法
4982
查看次数

Python/Numpy:分割数组

我有一些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方法可以做到这一点?

python numpy

5
推荐指数
1
解决办法
4934
查看次数

matplotlib 如何绘制 3D 数据集中几乎任意的平面?

有一个包含形状的 3D 数据的数组,例如 (64,64,64),您如何通过此数据集绘制由点和法线给出的平面(类似于晶体学中的 hkl 平面)?类似于在 MayaVi 中通过在数据中旋转平面来完成的操作。

在大多数情况下,生成的图将包含非方形平面。这些可以用 matplotlib(某种非矩形补丁)来完成吗?

编辑:我几乎自己解决了这个问题(见下文),但仍然想知道如何在 matplotlib 中绘制非矩形补丁......?

编辑:由于下面的讨论,我重申了这个问题。

python numpy matplotlib

5
推荐指数
1
解决办法
3573
查看次数

如何在mercurial中撤消恢复

我不小心添加了几个文件后

hg add
Run Code Online (Sandbox Code Playgroud)

我想用它来回复

hg revert --all
Run Code Online (Sandbox Code Playgroud)

不幸的是,我没有做出我预期的改变,所以他们也被还原了.我可以收回那些内容吗?

mercurial revert

5
推荐指数
1
解决办法
8371
查看次数

Python:在没有GIL的情况下绘制一些数据(matplotlib)

我的问题当然是GIL.在我分析数据时,最好在两者之间展示一些情节(所以等待结果并不是太无聊)

但GIL阻止了这一点(这让我开始问自己,Python本来就是一个好主意).

我只能显示情节,等到用户关闭它并在此之后开始计算.显然浪费时间.

我已经尝试过子进程和多处理模块,但似乎无法让它们工作.

对这个有什么想法吗?谢谢

编辑:好的,所以它不是GIL而是show().

python parallel-processing matplotlib gil

2
推荐指数
1
解决办法
711
查看次数

Python:用于语句行为

我的问题涉及本声明的结果:

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 syntax

2
推荐指数
1
解决办法
262
查看次数

Python语言中的Unicode名称是一个好主意吗?

我完全清楚Python可以处理unicode字符串.但我希望翻译能够理解它们,以便我不必输入

拉姆达= 1.54

λ= 1.54

(除了保留'lambda'这一事实)

这是否会发生(或者有没有办法实现这一点)?有没有理由反对这个?

python unicode encoding interpreter

1
推荐指数
1
解决办法
173
查看次数