繁体   English   中英

为什么 %pylab 没有启动 pylab 模式?

[英]Why is %pylab not starting pylab mode?

所以我只是试图通过从 LibreOffice Calc 表中读取它们并通过最新 Ubuntu 版本中的终端运行 Python 来绘制一个变量图作为另一个变量的函数。 这是我的简短test.py文件:

%pylab
# import mesa_reader
import mesa_reader as mr

# load and plot data
h = mr.MesaData('LOGS/history.data')
plot(h.log_Teff, h.log_L)

# set axis labels
xlabel('log Effective Temperature')
ylabel('log Luminosity')

# invert the x-axis
plt.gca().invert_xaxis()

问题是,当我输入python3 test.py时终端给出了以下问题

File "test.py", line 2
    %pylab
    ^
SyntaxError: invalid syntax

有人可以告诉我我的问题可能在这里吗?

编辑:这是新代码

# start pylab mode
# %pylab
import matplotlib.pyplot as plt
# import mesa_reader
import mesa_reader as mr

# load and plot data
h = mr.MesaData('LOGS/history.data')
plt.plot(h.log_Teff, h.log_L)

# set axis labels
plt.xlabel('log Effective Temperature')
plt.ylabel('log Luminosity')

# invert the x-axis
plt.gca().invert_xaxis()

但是,我收到以下错误

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    import matplotlib.pyplot as plt
ImportError: No module named matplotlib.pyplot

编辑2:这是代码+错误

import matplotlib.pyplot as plt
import mesa_reader as mr

# load and plot data
h = mr.MesaData('LOGS/history.data')
plt.plot(h.log_Teff, h.log_L)

# set axis labels
plt.gca().xlabel('log Effective Temperature')
plt.gca().ylabel('log Luminosity')

# invert the x-axis
plt.gca().invert_xaxis()
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import matplotlib.pyplot as plt
  File "/home/nick/.local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 115, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/home/nick/.local/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 63, in pylab_setup
    [backend_name], 0)
  File "/home/nick/.local/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 4, in <module>
    from . import tkagg  # Paint image to Tk photo blitter extension.
  File "/home/nick/.local/lib/python2.7/site-packages/matplotlib/backends/tkagg.py", line 5, in <module>
    from six.moves import tkinter as Tk
  File "/usr/lib/python2.7/dist-packages/six.py", line 203, in load_module
    mod = mod._resolve()
  File "/usr/lib/python2.7/dist-packages/six.py", line 115, in _resolve
    return _import_module(self.mod)
  File "/usr/lib/python2.7/dist-packages/six.py", line 82, in _import_module
    __import__(name)
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 42, in <module>
    raise ImportError, str(msg) + ', please install the python-tk package'
ImportError: No module named _tkinter, please install the python-tk package

%pylab只是一个 ipython 魔术命令: https ://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-pylab

要完成这项工作,您必须稍微重写您的代码:

import matplotlib.pyplot as plt
import mesa_reader as mr

# load and plot data
h = mr.MesaData('LOGS/history.data')
plt.plot(h.log_Teff, h.log_L)

# set axis labels
plt.xlabel('log Effective Temperature')
plt.ylabel('log Luminosity')

# invert the x-axis
plt.gca().invert_xaxis()

要保存文件,您可以执行以下操作:

plt.savefig('my_plot.png')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM