我安装的 matplotlib 似乎正在切断刻度线标签和截断轴标签。例如,该图的代码示例具有从 0 到 20 的 y 轴值。垂直轴似乎只打印最左边的数字,或最左边的带符号的数字,0、5、1、1、2为 0.0、5.0、10.0、15.0、20.0。垂直轴标签打印 'Amplitu' 应该是 'Amplitude, arb' 更改字体大小或使用窗口拉伸缩放绘图不会改变行为。蟒蛇代码:
from numpy import arange, sin, pi
from numpy import ma
from matplotlib.pyplot import plot, show, title, xlabel, ylabel
t = arange(0.0, 2.0, 0.01)
s = 20*sin(2*pi*t)
plot(t,s,'g')
title("Sinewave Plot Example", fontsize=10)
xlabel("Elapsed Time, arb", fontsize=10)
ylabel("Amplitude, arb", fontsize=10)
show()
这似乎是安装/配置问题,而不是编码问题。以上应该可以正常工作。
我已经按照以下顺序在 Mac OSX 10.8 Mountain Lion 上安装了 matplotlib
sudo pip install numpy
sudo pip install scipy
sudo pip install matplotlib
Downloading/unpacking matplotlib
Downloading matplotlib-1.2.0.tar.gz (36.9MB): 36.9MB downloaded
Running setup.py egg_info for package matplotlib
basedirlist is: ['/usr/local/', '/usr', '/usr/X11', '/opt/local']
============================================================================
BUILDING MATPLOTLIB
matplotlib: 1.2.0
python: 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 01:25:11)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
platform: darwin
REQUIRED DEPENDENCIES
numpy: 1.7.0
freetype2: found, but unknown version (no pkg-config)
OPTIONAL BACKEND DEPENDENCIES
libpng: found, but unknown version (no pkg-config)
Tkinter: Tkinter: version not identified, Tk: 8.5, Tcl: 8.5
Gtk+: no
* Building for Gtk+ requires pygtk; you must be able
* to "import gtk" in your build/install environment
Mac OS X native: yes
Qt: no
Qt4: no
PySide: no
Cairo: no
OPTIONAL DATE/TIMEZONE DEPENDENCIES
dateutil: matplotlib will provide
pytz: matplotlib will provide
six: matplotlib will provide
OPTIONAL USETEX DEPENDENCIES
dvipng: no
ghostscript: /bin/sh: gs: command not found
latex: no
[Edit setup.cfg to suppress the above messages]
当我尝试从 Mac 窗口保存绘图时,.png 文件,python 解释器生成以下错误(3.3 w/ipython)
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/backends/backend_macosx.py", line 475, in save_figure
self.canvas.get_default_filename())
ValueError: character U+55002f is not in range [U+0000; U+10ffff]
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 0: invalid continuation byte
提前感谢您提供的任何见解!