2016-10-26 3 views
-1
내가 운영 체제 시에라와 Mac에서 파이썬 3.5 아나콘다를 사용하고

마이그레이션 jupyter 노트북은 기본 플롯은 라텍스

안녕하세요 유래 커뮤니티에 의해 살해 파일 (스파이더)를 평합니다. 필자는 matplotlib의 여러 플롯 명령을 사용하여 광범위한 스크립트를 작성했습니다. 어떤 작품을 잘, 심지어 내가 1000 그림을 그릴 때. 저는 스파이더에서 .py 스크립트로 사용하기 위해 노트북을 다운로드하고 싶었습니다.

필자는 오류가 없으며 jupyter 노트북에서 실행하면 제대로 작동한다는 것을 확신합니다. 그러나 스파이더와 나는 오류 메시지의 무리를 얻을 :

runfile('/Users/user/imb-buoy-scripts/ProblemsWithPlotting.py',wdir=' 
/Users/user/imb-buoy-scripts') 
<matplotlib.figure.Figure at 0x11f5836a0> 
Traceback (most recent call last): 

File "/Applications/anaconda/lib/python3.5/site-packages/IPython 
/core/formatters.py", line 339, in __call__ 
return printer(obj) 

File "/Applications/anaconda/lib/python3.5/site-packages/IPython 
/core/pylabtools.py", line 228, in <lambda> 
png_formatter.for_type(Figure, lambda fig: print_figure(fig, 'png', 
**kwargs)) 

File "/Applications/anaconda/lib/python3.5/site-packages/IPython 
/core/pylabtools.py", line 119, in print_figure 
fig.canvas.print_figure(bytes_io, **kw) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/backend_bases.py", line 2180, in print_figure 
**kwargs) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/backends/backend_agg.py", line 527, in print_png 
FigureCanvasAgg.draw(self) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/backends/backend_agg.py", line 474, in draw 
self.figure.draw(self.renderer) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/artist.py", line 61, in draw_wrapper 
draw(artist, renderer, *args, **kwargs) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/figure.py", line 1159, in draw 
func(*args) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/artist.py", line 61, in draw_wrapper 
draw(artist, renderer, *args, **kwargs) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/axes/_base.py", line 2324, in draw 
a.draw(renderer) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/artist.py", line 61, in draw_wrapper 
draw(artist, renderer, *args, **kwargs) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/axis.py", line 1108, in draw 
renderer) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/axis.py", line 1058, in _get_tick_bboxes 
extent = tick.label1.get_window_extent(renderer) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/text.py", line 961, in get_window_extent 
bbox, info, descent = self._get_layout(self._renderer) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/text.py", line 352, in _get_layout 
ismath=False) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/backends/backend_agg.py", line 229, in get_text_width_height_descent 
renderer=self) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/texmanager.py", line 678, in get_text_width_height_descent 
page = next(iter(dvi)) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/dviread.py", line 89, in __iter__ 
have_page = self._read() 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/dviread.py", line 150, in _read 
self._dispatch(byte) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/dviread.py", line 233, in _dispatch 
self._fnt_def(k, c, s, d, a, l, n) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/dviread.py", line 388, in _fnt_def 
tfm = _tfmfile(fontname) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/dviread.py", line 897, in _tfmfile 
return _fontfile(texname, Tfm, '.tfm', _tfmcache) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/dviread.py", line 887, in _fontfile 
filename = find_tex_file(texname + suffix) 

File "/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/dviread.py", line 868, in find_tex_file 
stderr=subprocess.PIPE) 

File "/Applications/anaconda/lib/python3.5/subprocess.py", line 950, 
in __init__ 
restore_signals, start_new_session) 

File "/Applications/anaconda/lib/python3.5/subprocess.py", line 1544, 
in _execute_child 
raise child_exception_type(errno_num, err_msg) 

FileNotFoundError: [Errno 2] No such file or directory: 'kpsewhich' 

누군가가 나를 도울 또는 올바른 방향으로 날 지점 수 있다면 나는 매우 감사하게 될 것입니다. 주의 : 대한

감사

그래서 편집 : 그 이유는 내가하기 matplotlib에 사용하는 글꼴의 정의입니다 : 내가 언급 그래서 만약

# coding: utf-8 
# # Problems with plots after migrating from .ipynb to .py 

# In[2]: 
import numpy as np 
import matplotlib as mpl 
import matplotlib.pyplot as plt 
import matplotlib.gridspec as gs 

from matplotlib import rC# this is the matplotlib suggestion 
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']}) 
rc('text', usetex=True) 

# In[3]: 
mat = np.random.rand(5,5) 

# In[4]: 
fig = plt.figure() 
gsall = gs.GridSpec(6, 1) 
ax1 = fig.add_subplot(gsall[:]) 
source1 = ax1.contourf(mat,extend='both',cmap=mpl.cm.viridis) 
plt.title('Random field \n test') 
plt.colorbar(source1) 

# In[5]: 
plt.show() 

:이 예제 코드입니다 rc ('text') 나는 matplotlib와 관련이 있다고 들었던이 새로운 오류 메시지를받습니다. 'Helvetica'대신 'Arial'으로 설정하면 문제가 해결됩니다.

/Applications/anaconda/lib/python3.5/site-packages/matplotlib 
/font_manager.py:1288: UserWarning: findfont: Font family 
['sans-serif'] not found. Falling back to Bitstream Vera Sans 
(prop.get_family(), self.defaultFamily[fontext])) 

위에서 언급 한 오류가하기 matplotlib에서 라텍스의 사용에 관한,이 사람에 의해 만들어집니다 : 내가 코드에서 무엇을했다

rc('text', usetex=True) 

http://matplotlib.org/users/usetex.html 정확하게하기 matplotlib에서 예였다.

답변

1

잘못에서 [4]에 대신 PLT의 인스턴스의 "그림"을 PLT를 사용 [5]

def plot_tst(): 
    ''' 

    ''' 
    import numpy as np 
    import matplotlib as mpl 
    import matplotlib.pyplot as plt 
    import matplotlib.gridspec as gs 

    mat = np.random.rand(5,5) 

    fig = plt.figure() 
    gsall = gs.GridSpec(6, 1) 
    ax1 = fig.add_subplot(gsall[:]) 
    source1 = ax1.contourf(mat,extend='both',cmap=mpl.cm.viridis) 
    fig.suptitle('Random field \n test') 
    fig.colorbar(source1) 

plot_tst() 

https://i.stack.imgur.com/0GCrv.png

에서 나는 또한 제목() (suptitle하는 변경)하지만, 실제로 title()이 작동하지 않는 이유를 이해하지 못합니다. Windows 및 Spyder ipython 콘솔 그래픽 문제에 대한 설명이 있습니다.

(Win 7에서 Spyder 2.39를 실행 중이며 Spyder에 3.0.1 릴리스가 있습니다.)

+0

감사하지만, 불행히도 이것은 도움이되지 않습니다. – Paprika

+0

감사합니다,이 예제와 함께 도움이되지만, 여전히 광범위한 스크립트 오류가 ... 좋은 저녁 되 고 고마워요! – Paprika

+0

답변으로 표시하려면 무엇이 필요합니까? 마지막 편집 도움말이 있습니까? – f5r5e5d

1

Ipython 콘솔에서 문제없이 this example을 재현 할 수있었습니다. (하기 matplotlib에 라텍스 문자 변환을 관리하기위한 라이브러리)

Screenshot of my Spyder test

은 스파이더의

  • 최신 버전 (3.0.1)
  • 는 sudo apt-get을으로 dvipng를 설치 필요

    이 도움이되기를 바랍니다.