所以我有一些我的代码生成的图.我想保存所有这些,但我只想显示一个.我可以很好地完成保存部分,但只有一个可以显示,这是一个痛苦.
为了达到这个目的,我们已经围成一圈.我得到的最接近的是清除除了其中一个数字之外的所有数字,但是当我试图只显示一个时,它们都被显示出来.开始认为它是一个非常简单的东西,我忽略了,否则它是不可能的.
谁知道如何实现这一目标?
编辑:添加示例代码.对于最初没有这样做的道歉.
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) 我正在使用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)
所以,是的,想要类似这些标记的东西,但是能够将它们像在图例上那样(不同于当前如何将其分为两个部分)。
如果需要进一步的信息或说明,只需询问。在此先感谢您提供的所有帮助!
澄清:我不确定我对目标的解释是否足够好。我知道我可以摆脱其中的一个图例,但是我想要实现的是一个带有组合标记(即其中带有“点”的圆圈)的单个图例条目。如果我无法实现,则可以,我只是禁用外圆的图例,但很想让绘图上使用的标记(这是两个标记的组合)也可以在图例上使用。
有点奇怪,我显然错过了一些东西,但我得到了一些非常奇怪的行为,而且我无法弄清楚我做错了什么。
我有一个带有网格格式子图的图(为了这篇文章,我只说一个 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:
示例代码2:
import matplotlib.pyplot as plt
x …
Run Code Online (Sandbox Code Playgroud) 如果我将变量设置为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?
一如既往的帮助,如果需要更多的细节,请问.
所以我有一个生成各种矩阵的代码。这些矩阵需要存储在块对角矩阵中。这应该相当简单,因为我可以使用 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 ×5
matplotlib ×3
geometry ×1
matrix ×1
numpy ×1
plot ×1
python-3.4 ×1
scipy ×1
subplot ×1