小编Ste*_*eve的帖子

Matplotlib - 只显示一个数字

所以我有一些我的代码生成的图.我想保存所有这些,但我只想显示一个.我可以很好地完成保存部分,但只有一个可以显示,这是一个痛苦.

为了达到这个目的,我们已经围成一圈.我得到的最接近的是清除除了其中一个数字之外的所有数字,但是当我试图只显示一个时,它们都被显示出来.开始认为它是一个非常简单的东西,我忽略了,否则它是不可能的.

谁知道如何实现这一目标?

编辑:添加示例代码.对于最初没有这样做的道歉.

    fig1 = plt.figure(1)
    plt.plot([0, 1, 2, 3, 4], [0, 1, 2, 3, 4], label="Test", color='g')
    plt.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16],  label="Other Test",  color='r')
    plt.grid(True)

    fig1.savefig('Foo1.png')

    fig2 = plt.figure(2)
    plt.plot([0, 1, 2, 3, 4], [0, 5, 1, 9, 2], label="Test 2", color='g')
    plt.plot([0, 1, 2, 3, 4], [0, 10, 50, 0, 10],  label="Other Test 2",  color='r')
    plt.grid(True)

    fig2.savefig('Foo2.png')

    plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

Matplotlib; 散点图标记,圆点

我正在使用Matplotlib散点绘图仪进行绘图。对于标记,理想情况下,我希望内部带有圆点的圆的轮廓(外部圆圈清楚表明那里有东西,那么圆点会更精确)。如果我简单地绘制两次(一次与轮廓,再一次与点),则可以实现此目的,但是我的图例不正确。所以我的问题是,有没有办法做到这一点?还是我在寻找不存在的解决方案?

示例代码:

import matplotlib.pyplot as plt

fig1 = plt.figure()
ax1 = fig1.add_subplot(111)


x_data = [0.5, 1, 1.5]
y_data = [0.06, 0.06, 0.01]


ax1.scatter(x_data, y_data, label= 'Example legend entry.', s=80, marker='o', facecolors='none', edgecolors='black')
ax1.scatter(x_data, y_data, label= 'Example legend entry.', s=10, marker='o', color='black')


plt.gcf().subplots_adjust(bottom=0.08, top=0.95, left=0.05, right=0.84)


ax1.legend(loc='center left', bbox_to_anchor=(1, 0.5), fancybox=True, ncol=1, fontsize=17, labelspacing=1)


mng = plt.get_current_fig_manager()
mng.window.showMaximized()

plt.show()
Run Code Online (Sandbox Code Playgroud)

和示例图: 样例图

所以,是的,想要类似这些标记的东西,但是能够将它们像在图例上那样(不同于当前如何将其分为两个部分)。

如果需要进一步的信息或说明,只需询问。在此先感谢您提供的所有帮助!

澄清:我不确定我对目标的解释是否足够好。我知道我可以摆脱其中的一个图例,但是我想要实现的是一个带有组合标记(即其中带有“点”的圆圈)的单个图例条目。如果我无法实现,则可以,我只是禁用外圆的图例,但很想让绘图上使用的标记(这是两个标记的组合)也可以在图例上使用。

python plot matplotlib python-3.4

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

Matplotlib;向子图添加圆圈 - 问题/困惑

有点奇怪,我显然错过了一些东西,但我得到了一些非常奇怪的行为,而且我无法弄清楚我做错了什么。

我有一个带有网格格式子图的图(为了这篇文章,我只说一个 2 × 2 网格)。我想在每个上绘制一些东西并添加一个圆圈。应该很容易,但它并不像我预期的那样。

示例代码1:

import matplotlib.pyplot as plt

x = [ -1.0, -0.5, 0.0, 0.5, 1.0 ]
y = [  0.7,  0.2, 1.0, 0.0, 0.0 ]

circle = plt.Circle( ( 0, 0 ), 1 )

fig, axes = plt.subplots( 2, 2 )

axes[ 0, 0 ].plot( x, y )
axes[ 1, 1 ].plot( x, y )

axes[ 0, 0 ].add_patch( circle )
axes[ 1, 1 ].add_patch( circle )

plt.show( )
Run Code Online (Sandbox Code Playgroud)

输出1:

输出1

示例代码2:

import matplotlib.pyplot as plt

x …
Run Code Online (Sandbox Code Playgroud)

python geometry matplotlib subplot

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

Python - 检查数字0或False的任何方式

如果我将变量设置为False,则将其读取为等于零.有什么方法可以检查变量是否实际为假或者数字是0.

就像是:

Spam = False

if Spam == False and not Spam == 0:
    do something
Run Code Online (Sandbox Code Playgroud)

我感觉这是不可能的; 但我想仔细检查一下.

旁注:将来,如果变量为零,分配"无"而不是"假"会更好吗?对于当前代码,我不想用try和excepts重写整个脚本,所以我将False更改为-1(对于这种情况不是一个可行的值).但是为了将来参考,我假设None方法更像Pythonic?

一如既往的帮助,如果需要更多的细节,请问.

python

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

使用 linalg.block_diag 来表示可变数量的块

所以我有一个生成各种矩阵的代码。这些矩阵需要存储在块对角矩阵中。这应该相当简单,因为我可以使用 scipy 的:

scipy.linalg.block_diag(*arrs)
Run Code Online (Sandbox Code Playgroud)

然而我遇到的问题是我不知道需要像这样存储多少个矩阵。我想让事情尽可能简单(自然地)。我想做一些类似的事情:

scipy.linalg.block_diag( matrix_list[ii] for ii in  range(len(matrix_list)) )
Run Code Online (Sandbox Code Playgroud)

但这行不通。我可以想到其他一些方法来做到这一点......但对于我认为应该简单得多的事情来说,它们都变得相当复杂。

有谁知道(或知道)执行此操作的简单方法?

提前致谢!

python numpy matrix parameter-passing scipy

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