下面的代码给出了一个在图的上方和下方有明显边距的图.我不知道如何消除明显的利润.subplots_adjust
没有按预期工作.
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(range(10),range(10))
ax.set_aspect('equal')
plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)
tight_layout
消除了一些边际,但不是所有的边距.
我想要的是实际上将宽高比设置为任何自定义值并同时消除空白区域.
更新:正如Pierre H.所说,关键是要改变数字容器的大小.所以我的问题是:你能否建议一种方法来适应图形的大小到任意纵横比的轴的大小?
换句话说,首先我在其上创建一个图形和一个轴,然后我改变轴的大小(例如通过改变纵横比),这通常会使图形容器的一部分留空.在这个阶段,我们需要相应地改变图形的大小以消除图形容器上的空白区域.
首先,我预先分配了以下空DataFrame:
df=DataFrame(columns=range(10000),index=range(1000))
Run Code Online (Sandbox Code Playgroud)
然后我想df
逐行(有效地)使用长度为10000的numpy数组作为数据更新.我的问题是:我甚至不知道我应该使用哪种DataFrame方法来完成此任务.
谢谢!
在Python中,我们有一个方便的功能enumerate
:
for i,item in enumerate(foo_list):
do something
Run Code Online (Sandbox Code Playgroud)
是否有Matlab相当于enumerate
?
现在,我能想到的是类似以下内容(Matlab代码):
i=1;
for foo=foo_list
....
i=i+1;
end
Run Code Online (Sandbox Code Playgroud) 最初我可以通过以下方式将图标题设置为粗体:
import Matplotlib.pyplot as plt
plt.title("Test",fontweight="bold")
Run Code Online (Sandbox Code Playgroud)
但是一旦我使用fontname="Times New Roman"
,fontweight="bold"
就不会导致任何改变:
import Matplotlib.pyplot as plt
plt.title("Test",fontname="Times New Roman",fontweight="bold")
Run Code Online (Sandbox Code Playgroud)
如何将图标题设置为粗体?
我需要在同一个图中绘制两个直方图并且存在重叠.我使用命令
plt.hist(data1,bins=40,normed=True,histtype='step')
plt.hist(data2,bins=40,normed=True,histtype='step')
Run Code Online (Sandbox Code Playgroud)
为了区分这两个不同的直方图(需要以黑色和白色呈现它们),我想让其中一个以虚线而不是实线显示,所以我尝试过
plt.hist(data1,bins=40,normed=True,histtype='step',ls='--')
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误信息:
Exception in Tkinter callback
Traceback (most recent call last):
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/tkinter/__init__.py", line 1475, in __call__
return self.func(*args)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/tkinter/__init__.py", line 534, in callit
func(*args)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/backends/backend_tkagg.py", line 363, in idle_draw
self.draw()
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/backends/backend_tkagg.py", line 348, in draw
FigureCanvasAgg.draw(self)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/backends/backend_agg.py", line 451, in draw
self.figure.draw(self.renderer)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/artist.py", line 56, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/figure.py", line 1035, in draw
func(*args)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/artist.py", line 56, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/axes.py", …
Run Code Online (Sandbox Code Playgroud) 以下脚本创建一个名为“ input.gz”的gzip文件。然后,脚本尝试使用打开“ input.gz” gzip -dc
。凭直觉,die
如果提供了错误的输入文件名,则应触发。但是,就像下面的脚本一样,die
即使提供了错误的输入文件名(“ inputx.gz”),该程序也不会:
use warnings;
use strict;
system("echo PASS | gzip -c > input.gz");
open(IN,"-|","gzip -dc inputx.gz") || die "can't open input.gz!";
print STDOUT "die statment was not triggered!\n";
close IN;
Run Code Online (Sandbox Code Playgroud)
上面脚本的输出是
die statment was not triggered!
gzip: inputx.gz: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么die
即使由于gzip
错误退出也没有触发语句?die
当给出错误的文件名时,如何使语句触发?