質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.36%

matplotlibでEPSファイルを出力したいがエラーがでる

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,777

score 4

前提・実現したいこと

pythonにて,matplotlibを使ってepsファイルを出力したいです.
EPSファイルは出力できているのですが,
TEXにて画像表示を行うと真っ白で表示されません.
また,EPS出力時にエラーをはいています.
エラーを出さず,TEXに表示されるようにしたいです.

発生している問題・エラーメッセージ

The PostScript backend does not support transparency; partially transparent artists will be rendered opaque.
The PostScript backend does not support transparency; partially transparent artists will be rendered opaque.
The PostScript backend does not support transparency; partially transparent artists will be rendered opaque.
The PostScript backend does not support transparency; partially transparent artists will be rendered opaque.
The PostScript backend does not currently support the selected font.
RuntimeError                              Traceback (most recent call last)
<ipython-input-52-9309a6af578d> in <module>
---> 32 plt.savefig("./AAA.png",dpi=400,bbox_inches="tight")

python\python37\lib\site-packages\matplotlib\pyplot.py in savefig(*args, **kwargs)
    720 def savefig(*args, **kwargs):
    721     fig = gcf()
--> 722     res = fig.savefig(*args, **kwargs)
    723     fig.canvas.draw_idle()   # need this if 'transparent=True' to reset colors
    724     return res

python\python37\lib\site-packages\matplotlib\figure.py in savefig(self, fname, transparent, **kwargs)
   2178             self.patch.set_visible(frameon)
   2179 
-> 2180         self.canvas.print_figure(fname, **kwargs)
   2181 
   2182         if frameon:

python\python37\lib\site-packages\matplotlib\backend_bases.py in print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, **kwargs)
   2080                     orientation=orientation,
   2081                     bbox_inches_restore=_bbox_inches_restore,
-> 2082                     **kwargs)
   2083             finally:
   2084                 if bbox_inches and restore_bbox:

python\python37\lib\site-packages\matplotlib\backends\backend_ps.py in print_eps(self, outfile, *args, **kwargs)
    840 
    841     def print_eps(self, outfile, *args, **kwargs):
--> 842         return self._print_ps(outfile, 'eps', *args, **kwargs)
    843 
    844     def _print_ps(self, outfile, format, *args,

python\python37\lib\site-packages\matplotlib\backends\backend_ps.py in _print_ps(self, outfile, format, papertype, dpi, facecolor, edgecolor, orientation, *args, **kwargs)
    869             self._print_figure(outfile, format, dpi, facecolor, edgecolor,
    870                                orientation, isLandscape, papertype,
--> 871                                **kwargs)
    872 
    873     def _print_figure(

python\python37\lib\site-packages\matplotlib\backends\backend_ps.py in _print_figure(self, outfile, format, dpi, facecolor, edgecolor, orientation, isLandscape, papertype, metadata, dryrun, bbox_inches_restore, **kwargs)
   1105             else:
   1106                 with open(outfile, 'w', encoding='latin-1') as fh:
-> 1107                     print_figure_impl(fh)
   1108 
   1109     def _print_figure_tex(

python\python37\lib\site-packages\matplotlib\backends\backend_ps.py in print_figure_impl(fh)
   1044                             try:
   1045                                 convert_ttf_to_ps(os.fsencode(font_filename),
-> 1046                                                   fh, fonttype, glyph_ids)
   1047                             except RuntimeError:
   1048                                 _log.warning("The PostScript backend does not "

RuntimeError: TrueType font is missing table

該当のソースコード

fig,axes = plt.subplots(1,2, sharex="all", sharey="all")
colorlist = ["g","m","g","m"]
markers=["o","v","o","v"]
labels=["1","2","1","2"]
line=["solid","dashed"]
tmp=["","","",""]
j = 0
for data in zip(mean_datas_N,std_datas_N,min_datas_N,max_datas_N):
    tmp[j] = axes[1].plot([1,2,3,4],data[0],color=colorlist[j],label=labels[j],marker=markers[j],linestyle = line[j])
    j = j+1

tmp[2] = axes[0].plot([1,2,3,4],[0.8,0.8,0.8,0.8],color=colorlist[2],label=labels[2],marker=markers[2],linestyle=line[0])
tmp[3] = axes[0].plot([1,2,3,4],mean_datas_AA2,color=colorlist[3],label=labels[3],marker=markers[3],linestyle=line[1])

axes[0].set_xlabel(u"k", fontname="MS Gothic")##x軸の目盛指定   
axes[1].set_xlabel(u"k", fontname="MS Gothic")##x軸の目盛指定   

axes[0].set_ylabel(u"a", fontname="MS Gothic")##y軸の目盛指定   
axes[0].set_title(u"A", fontname="MS Gothic")
axes[1].set_title(u"N", fontname="MS Gothic")

ticks = axes[0].set_xticks([1,2,3,4])
plt.ylim(0.7,1.0)
l=axes[0].set_xticklabels([1,3,5,10])#x軸の目盛の表記指定,rotation傾
plt.subplots_adjust(wspace=0.05,right=0.85)
axes[0].legend(loc="upper left", prop={"family":"MS Gothic","size":"14"})#,title=u"加工")
plt.savefig("./AAA.eps",dpi=400,bbox_inches="tight")

試したこと

plt.savefig("./AAA.png",dpi=400,bbox_inches="tight")
見たく,PNG形式にすれば出力できました.

plt.savefig("./AAA.eps")
にしてもエラーがでます.

補足情報(FW/ツールのバージョンなど)

Jupyterを使って実行しています.

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • tiitoi

    2020/03/03 16:45

    現象が再現するグラフ生成のコードも追記できますか?

    キャンセル

  • sasapink

    2020/03/03 16:58

    追記いたしました,よろしくお願いいたします.

    キャンセル

  • tiitoi

    2020/03/03 17:23

    記載いただいたコードが一部でコピペして実行できないので、実行して確認できないです。
    png での出力に成功したのであれば、以下のようなサービスを使って、EPS形式にあとから変換する方法ではダメでしょうか?
    https://onlineconvertfree.com/ja/convert-format/png-to-eps/

    キャンセル

  • sasapink

    2020/03/03 17:41

    確認いただきありがとうございました.
    PNGからEPSに変換する考え,思いつきませんでした.
    変換したところ,無事TEXに張り付けることができました.
    ありがとうございます.

    キャンセル

回答 1

check解決した方法

0

EPS出力は断念し,PNGファイルをEPSファイルに変換して対処できました.

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.36%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る