小编Aln*_*tak的帖子

更改matplotlib pyplot图例中线条的线宽

我想更改pyplot图例中的线样本的厚度/宽度.

图例中线样的线宽与它们在图中表示的线相同(因此,如果线y1linewidth=7.0,则图例的相应y1标签也将具有linewidth=7.0).

我希望图例线比图中的线条更粗.

例如,以下代码生成以下图像:

import numpy as np
import matplotlib.pyplot as plt

# make some data
x = np.linspace(0, 2*np.pi)

y1 = np.sin(x)
y2 = np.cos(x)

# plot sin(x) and cos(x)
fig = plt.figure()
ax  = fig.add_subplot(111)
ax.plot(x, y1, c='b', label='y1',linewidth=7.0)
ax.plot(x, y2, c='r', label='y2')

leg = plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)

示例代码图

我想y1在图例中设置标签linewidth=7.0,而图中的y1线条具有不同的宽度(linewidth=1.0).

我没有成功在线寻找解决方案.唯一相关的问题是有关更改图例边界框的线宽的答案leg.get_frame().set_linewidth(7.0).这不会改变线的线宽的传奇.

python matplotlib

42
推荐指数
1
解决办法
12万
查看次数

VSCode:如何减少 Jupyter 笔记本中文本和单元格边界之间的边距/间隙?

在 VSCode 中,单元格中的文本与该单元格的最左侧边界/边缘之间存在很大间隙。

您可以在此屏幕截图中看到两个红色箭头之间的空白边距或间隙:

这里有太多的填充,看起来像是 2 或 3 个空格的缩进。我宁愿没有填充,或者至少显着减少填充。

有什么办法可以调整这个边距宽度吗?

css visual-studio-code jupyter-notebook

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

在编辑模式,Jupyter笔记本中交换Enter和Shift-Enter输入命令的任何方法?

我刚开始使用ipython/jupyter笔记本.Shift-Enter(运行当前单元格)和Enter(插入换行符)命令使用起来很令人沮丧.我想在编辑模式下交换这两个输入的命令.

所以:

Shift-Enter :(插入换行符)

输入:(运行当前单元格)

有没有办法重新映射jupyter笔记本的命令?配置文件可能吗?听起来像ipython笔记本并不总是这样工作(在IPython控制台中输入插入新行而不是在内核重启后执行当前行#2696).链接github问题的解决方案似乎是"只使用shift-enter",而我无法在google上找到解决方案.

我有以下版本:

ipykernel (4.5.2)
ipython (5.3.0)
jupyter (1.0.0)
notebook (4.4.1)
Run Code Online (Sandbox Code Playgroud)

ipython ipython-notebook jupyter-notebook

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

在代码中调用 pytest:仅在当前文件中运行测试

我有一个 python 文件,其中包含一些代码以及对该代码的简单测试。

我想从该 python 文件调用 pytest,让它仅收集该文件中的测试,然后运行它们。

例如,foo.py

# ... various code above...

def test_foo():
    foo = Foo()
    assert foo()

def test_bar():
    bar = Bar()
    assert bar.baz

if __name__ == '__main__':
    import pytest
    pytest.main()
Run Code Online (Sandbox Code Playgroud)

我现在想运行python foo.py并让 pytest 运行该文件中的两个测试,并且仅运行这些测试。

但是,当我运行时python foo.py, pytest 会收集来自我运行命令的路径的所有模块的所有测试。

我如何运行python foo.py并让pytest.main()调用的foo.py仅调用测试foo.py而不调用其他?

python pytest

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

Python打印浮动填充空格而不是零

我有一个浮点数,myfloat = 0.002我想用空格填充' '而不是尾随零打印.

假设我想myfloat用空格填充右对齐到5个空格.为清楚起见,我将'|'在我的浮动后打印.

我想要的是: 0.002 |

什么填充印刷(我知道)给出:

>>> print(str(myfloat) + '|') # no padding, formatting
0.002|
>>> print('%.5f' % myfloat + '|') 
0.00200|
>>> print('{0:<5f}|'.format(myfloat))
0.002000|
>>> print('{0:.5f}|'.format(myfloat)) 
0.00200|
Run Code Online (Sandbox Code Playgroud)

print('{0:<Xf}|'.format(myfloat))X> 8左右后,我知道垫有空格.我不想要任何尾随零.

我在同一行上打印多个浮点数.它们具有不同的字符串长度,我希望它们使用空格填充而不是零来均匀对齐,因此静态填充字符串将不起作用.

举例来说,可以说,我要打印的内容myfloatlist1 = [0.01, 0.002, 0.0003, 0.00004],并myfloatlist2 = [0.00004, 0.0003, 0.002, 0.01]在两行,每行具有相同间隔填充:

0.01     0.002    0.0003   0.00004 
0.00004  0.0003   0.002    0.01
Run Code Online (Sandbox Code Playgroud)

无论如何用空格填充浮动打印(不将浮动转换为字符串或其他东西)?

python python-2.7

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

当被多个测试函数调用时,Pytest 是否缓存夹具数据?

我有需要测试数据的单元测试。此测试数据已下载,文件大小相当大。

@pytest.fixture
def large_data_file():
    large_data = download_some_data('some_token')
    return large_data

# Perform tests with input data
def test_foo(large_data_file): pass
def test_bar(large_data_file): pass
def test_baz(large_data_file): pass
# ... and so on
Run Code Online (Sandbox Code Playgroud)

我不想多次下载此数据。它应该只下载一次,并传递给所有需要它的测试。pytest 是否调用large_data_file一次并将其用于使用该夹具的每个单元测试,还是large_data_file每次都调用?

在 中unittest,您只需在setUpClass方法中下载一次所有测试的数据。

我宁愿不只是large_data_file = download_some_data('some_token')在这个 py 脚本中有一个全局变量。我想知道如何使用 Pytest 处理这个用例。

python unit-testing pytest

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