如何为matplotlib设置乳胶路径

时间:2019-03-30 10:07:31

标签: python matplotlib latex

我正在尝试使用matplotlib绘制乳胶。 我已经用pip安装了乳胶。 这个example很好用

import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)

plt.plot(t,s)
plt.title(r'$\alpha_i > \beta_i$', fontsize=20)
plt.text(1, -0.6, r'$\sum_{i=0}^\infty x_i$', fontsize=20)
plt.text(0.6, 0.6, r'$\mathcal{A}\mathrm{sin}(2 \omega t)$',
         fontsize=20)
plt.xlabel('time (s)')
plt.ylabel('volts (mV)')
plt.show()

matplotlib.rcParams['text.usetex'] = True遇到乳胶错误。

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['text.usetex'] = True
t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)

plt.plot(t,s)
plt.title(r'$\alpha_i > \beta_i$', fontsize=20)
plt.text(1, -0.6, r'$\sum_{i=0}^\infty x_i$', fontsize=20)
plt.text(0.6, 0.6, r'$\mathcal{A}\mathrm{sin}(2 \omega t)$',
         fontsize=20)
plt.xlabel('time (s)')
plt.ylabel('volts (mV)')
plt.show()

产生此堆栈

  

-------------------------------------------------- ---------------------------- FileNotFoundError Traceback(最近一次调用   持续)   〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / IPython / core / formatters.py   在通话中(自己,obj)       330关       331其他:   -> 332返回打印机(obj)       333#最后寻找特殊的方法名称       334方法= get_real_method(obj,self.print_method)

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / IPython / core / pylabtools.py   在(图)       235       236 if'png'格式:   -> 237 png_formatter.for_type(图,lambda图:print_figure(fig,'png',** kwargs))       238如果格式为'retina'或格式为'png2x':       239 png_formatter.for_type(图,lambda图:retina_figure(fig,** kwargs))

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / IPython / core / pylabtools.py   在print_figure(fig,fmt,bbox_inches,** kwargs)中       119       120 bytes_io = BytesIO()   -> 121图.canvas.print_figure(bytes_io,** kw)       122数据= bytes_io.getvalue()       123 if fmt =='svg':

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / backend_bases.py   在print_figure中(自己,文件名,dpi,facecolor,edgecolor,   方向,格式,bbox_inches,** kwargs)2047
  方向=方向,2048 dryrun =真实,   -> 2049 ** kwargs)2050渲染器= self.figure._cachedRenderer 2051
  bbox_artists = kwargs.pop(“ bbox_extra_artists”,无)

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / backends / backend_agg.py   在print_png中(self,filename_or_obj,* args,** kwargs)       508       509“”“   -> 510 FigureCanvasAgg.draw()       511渲染器= self.get_renderer()       512

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / backends / backend_agg.py   中画(个体经营)       400工具栏= self.toolbar       401尝试:   -> 402 self.figure.draw(self.renderer)       403#使用此绘制可能需要一个GUI类来更新窗口,因此       404#不要忘记调用超类。

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / artist.py   在draw_wrapper中(艺术家,渲染器,* args,** kwargs)        48 renderer.start_filter()        49   ---> 50回程画(艺术家,渲染器,* args,** kwargs)        51最后:        52如果artist.get_agg_filter()不是None:

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / figure.py   在draw(自己,渲染器)中1650 1651
  mimage._draw_list_compositing_images(   -> 1652渲染器,自我,艺术家,self.suppressComposite)1653 1654
  renderer.close_group('figure')

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / image.py   在_draw_list_compositing_images(渲染器,父级,艺术家,   抑制(复合)       136如果not_composite或not has_images:       137 in艺术家:   -> 138 a.draw(渲染器)       139其他:       140#将任何相邻的图像合成在一起

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / artist.py   在draw_wrapper中(艺术家,渲染器,* args,** kwargs)        48 renderer.start_filter()        49   ---> 50回程画(艺术家,渲染器,* args,** kwargs)        51最后:        52如果artist.get_agg_filter()不是None:

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / axes / _base.py   在draw(self,renderer,inframe)中2602
  renderer.stop_rasterizing()2603   -> 2604 mimage._draw_list_compositing_images(渲染器,自我,艺术家)2605 2606 renderer.close_group('axes')

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / image.py   在_draw_list_compositing_images(渲染器,父级,艺术家,   抑制(复合)       136如果not_composite或not has_images:       137 in艺术家:   -> 138 a.draw(渲染器)       139其他:       140#将任何相邻的图像合成在一起

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / artist.py   在draw_wrapper中(艺术家,渲染器,* args,** kwargs)        48 renderer.start_filter()        49   ---> 50回程画(艺术家,渲染器,* args,** kwargs)        51最后:        52如果artist.get_agg_filter()不是None:

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / axis.py   在draw(自己,渲染器,* args,** kwargs)中1185 ticks_to_draw   = self._update_ticks(renderer)1186 ticklabelBoxes,ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,   -> 1187渲染器)用于ticks_to_draw中的勾号1188 1189:

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / axis.py   在_get_tick_bboxes(自己,刻度线,渲染器)1123中用于刻度线   勾选:1124,如果tick.label1On和   tick.label1.get_visible():   -> 1125范围= tick.label1.get_window_extent(renderer)1126
  ticklabelBoxes.append(extent)1127如果tick.label2On和   tick.label2.get_visible():

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / text.py   在get_window_extent中(自己,渲染器,dpi)       927引发RuntimeError('无法获得不带渲染器的窗口范围')       928   -> 929 bbox,信息,血统= self._get_layout(self._renderer)       930 x,y = self.get_unitless_position()       931 x,y = self.get_transform()。transform_point((x,y))

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / text.py   在_get_layout中(自己,渲染器)       311 w,h,d = renderer.get_text_width_height_descent(clean_line,       312 self._fontproperties,   -> 313 ismath = ismath)       314其他:       315 w,h,d = 0,0,0

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / backends / backend_agg.py   在get_text_width_height_descent(self,s,prop,ismath)中       207字体大小= prop.get_size_in_points()       208 w,h,d = texmanager.get_text_width_height_descent(   -> 209秒,fontsize,renderer = self)       210返回w,h,d       211

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / texmanager.py   在get_text_width_height_descent中(self,tex,fontsize,renderer)       第462章       463#使用dviread有时返回错误的下降。   -> 464 dvifile = self.make_dvi(tex,fontsize)       465,其中dviread.Dvi(dvifile,72 * dpi_fraction)作为dvi:       466页= next(iter(dvi))

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / texmanager.py   在make_dvi中(self,tex,fontsize)       第326章       327 [“ latex”,“-interaction = nonstopmode”,“-halt-on-error”,   -> 328 texfile],tex)       329对于glob.glob(basefile +'*')中的fname:       330如果不是fname.endswith(('dvi','tex')):

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / matplotlib / texmanager.py   在_run_checked_subprocess中(自己,命令,tex)       (296)第296章       297 cwd = self.texcache,   -> 298 stderr = subprocess.STDOUT)       299,除了subprocess.CalledProcessError作为例外:       300提高RuntimeError(

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / subprocess.py在   check_output(超时,* popenargs,** kwargs)       334       335 return run(* popenargs,stdout = PIPE,timeout = timeout,check = True,   -> 336 ** kwargs).stdout       337       338

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / subprocess.py在运行中(输入,   超时,检查,* popenargs,** kwargs)       401 kwargs ['stdin'] = PIPE       402   -> 403,带有Popen(* popenargs,** kwargs)作为进程:       404尝试:       405 stdout,stderr = process.communicate(input,timeout = timeout)

      init 中的

〜/ anaconda3 / envs / tf11 / lib / python3.6 / subprocess.py(自身,   args,bufsize,可执行文件,stdin,stdout,stderr,preexec_fn,   close_fds,shell,cwd,env,universal_newlines,startupinfo,   creationflags,restore_signals,start_new_session,pass_fds,编码,   错误)       705 c2pread,c2pwrite,       706 errread,errwrite,   -> 707 restore_signals,start_new_session)       708除外:       709#如果孩子无法启动,请清理。

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / subprocess.py在   _execute_child(自己,args,可执行文件,preexec_fn,close_fds,pass_fds,cwd,env,startupinfo,creatingflags,shell,p2cread,   p2cwrite,c2pread,c2pwrite,errread,errwrite,restore_signals,   start_new_session)1331其他:1332
  err_msg + =':'+ repr(orig_executable)   -> 1333提高child_exception_type(errno_num,err_msg)1334提高child_exception_type(err_msg)
  1335

     

FileNotFoundError:[错误2]没有这样的文件或目录:'latex'

1 个答案:

答案 0 :(得分:1)

您通过pip安装的latex PyPI project不是完整的乳胶发行版,而是“允许从Python调用LaTeX而不会造成混乱。”

您的第一个示例起作用的原因是没有调用LaTeX。相反,matplotlib使用其自己的TeX表达式解析器,布局引擎和字体:mathtext。在第二个示例中,您确实试图调用LaTeX,但由于未安装tex发行版,因此出现错误!

您将需要确保在系统上安装了tex发行版。 TeXLiveMikTex均可解决问题。另外,matplotlib documentation在使用LaTeX进行文本渲染方面非常好,我建议您阅读一下。