我正在使用 matplotlib 和 python 2.7 创建一些表。当我保存表格时,即使表格只有 1 - 2 行,图像也会变成方形,当我稍后将它们添加到自动生成的 PDF 时会创建大量空白空间。我如何使用代码的一个例子在这里......
import matplotlib.pyplot as plt
t_data = ((1,2), (3,4))
table = plt.table(cellText = t_data, colLabels = ('label 1', 'label 2'), loc='center')
plt.axis('off')
plt.grid('off')
plt.savefig('test.png')
Run Code Online (Sandbox Code Playgroud)
这会产生这样的图像...... 你可以看到你可以看到它周围的空白
奇怪地使用plt.show()在 GUI 中生成没有空白的表格。
我尝试过使用各种形式的tight_layout=True没有运气,以及使背景透明(它变得透明,但仍然存在)。
任何帮助将不胜感激。
我正在 Linux X86_64 上工作。
我需要根据条目所代表的动态函数的名称来确定 ELF 文件中特定 PLT 条目的地址。我可以算出文件相对于地址的偏移量,但我需要能够确定地址。
如果我使用反汇编 ELF 文件,objdump -D -z elffile我会发现 objdump 对 PLT 中的每个条目使用符号名称。(objdump从哪里获取这些地址和符号名的关系?)
例子:
0000000000000041a2b0 fileno@plt:
Run Code Online (Sandbox Code Playgroud)
如果我使用objdump -T elffile | grep fileno我会得到这样的东西:
0000000000000 DF *UND* 00000000000000000 GLIBC_2.2.5 fileno
Run Code Online (Sandbox Code Playgroud)
我需要从“C”做的是在 ELF 文件中找到特定动态函数的 PLT 条目并获取地址。
背景是我正在修补现有的 ELF 文件,并且需要将函数调用重定向到不同的动态函数。我已经使用从 objdump 反汇编中收集的地址手动修补了 ELF 文件,并证明这适用于我的特定应用程序,我只需要能够从程序中执行此操作。我希望不必通过 objdump 反汇编程序代码来找出它如何获取 PLT 条目符号和地址。
考虑以下功能:
extern void test1(void);
extern void test2(void) {
test1();
}
Run Code Online (Sandbox Code Playgroud)
这是gcc -fpic在amd64 Linux上生成的代码:
test2:
jmp test1
Run Code Online (Sandbox Code Playgroud)
当我编译时-fpic,gcc显式调用PLT来启用符号插入:
test2:
jmp test1@PLT
Run Code Online (Sandbox Code Playgroud)
然而,这对于与位置无关的代码并不是严格需要的,如果我不想支持,可能会被遗漏.如有必要,链接器仍然会将跳转目标重写为PLT符号.
如何在不更改源代码且不使编译代码不适合共享库的情况下,使函数调用直接转到其目标而不是通过PLT显式转换?
当我试图通过代码绘制交互式绘图时:
import matplotlib.pyplot as plt
import PyQt5
%matplotlib qt
...
plt.plot(a_list,b_list)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
--------------------------------------------------------------------------- TypeError Traceback (most recent call
last) <ipython-input-49-187dd4fead7a> in <module>()
----> 1 plt.plot(parameters['eng_list'],np.real(conductivity))
2 plt.plot(parameters['eng_list'],np.imag(conductivity))
3 plt.show()
C:\Anaconda3\lib\site-packages\matplotlib\pyplot.py in plot(*args,
**kwargs) 3305 @_autogen_docstring(Axes.plot) 3306 def plot(*args, **kwargs):
-> 3307 ax = gca() 3308 # Deprecated: allow callers to override the hold state 3309 # by passing hold=True|False
C:\Anaconda3\lib\site-packages\matplotlib\pyplot.py in gca(**kwargs)
948 matplotlib.figure.Figure.gca : The figure's gca method.
949 """
--> 950 return gcf().gca(**kwargs)
951
952 # More …Run Code Online (Sandbox Code Playgroud) 我有这个 df :
CET MaxTemp MeanTemp MinTemp MaxHumidity MeanHumidity MinHumidity revenue events
0 2016-11-17 11 9 7 100 85 63 385.943800 rain
1 2016-11-18 9 6 3 93 83 66 1074.160340 storm
2 2016-11-19 8 6 4 93 87 76 2980.857860
3 2016-11-20 10 7 4 93 84 81 1919.723960 rain-thunderstorm
4 2016-11-21 14 10 7 100 89 77 884.279340
5 2016-11-22 13 10 7 93 79 63 869.071070
6 2016-11-23 11 8 5 100 91 82 760.289260 fog-rain
7 …Run Code Online (Sandbox Code Playgroud) 我需要从我得到的元组列表中构建一个条形图,键名作为 x 轴上显示的每个条的标签,值作为条的高度。这是我的输入的样子:
top20 = [('Blues', 2008), ('Guadeloupe', 1894), ('Yorkshire', 1216), ('Monterrey', 1112), ('Government', 1081), ('Algeria', 972), ('Rotterdam', 920), ('Sardinia', 913), ('Mac OS', 864), ('Coffee', 858), ('Netherlands', 849), ('Oklahoma', 829), ('Tokyo', 817), ('Boating', 801), ('Finland', 765), ('Michigan', 737), ('Tamaulipas', 733), ('Croatia', 722), ('Kagoshima', 701), ('Isuzu', 678)]
Run Code Online (Sandbox Code Playgroud)
这是我目前使用的代码:
plt.bar(range(len(top20)), top20.values(), align='center')
plt.xticks(range(len(top20)), list(top20.keys()))
plt.show()
Run Code Online (Sandbox Code Playgroud)
我知道,逻辑遵循字典作为输入,但我想不出一种方法来完成这项工作。请帮忙,并提前致谢。
我正在尝试使用plt.show()显示一些图。我得到了在IPython控制台上显示的图,但是我需要在新窗口中查看每个图。我能做什么 ?