Mac020k ブログ
タグシリーズ投稿
お気に入りのタグ

ブログを書いている人

Mac020k

ホームページ

GitHub
github_user_icon
Mac020k

(管理者用)ダッシュボード

© Mac020kBuild with NextjsBlogWithGitPAT  (f27b9cf)
  1. Excelで作ったグラフのpdfがやけに重い。原因と解決策
  2. 実例
  3. 解決策
共有
2025
8
31

Excelで作ったグラフのpdfがやけに重い。原因と解決策

コメント: 0件
Excel
論文Tips

論文用にグラフを作成するときはベクタ画像の方が良いとされています。 Excelではpdfファイルに出力して、TeX\TeXTE​Xに貼り付ければきれいなグラフを貼り付けることができます。 しかし、思いもよらずファイルサイズが大きくなってしまうケースがあります。 今回はこの問題の原因と対処法を述べていきます。

実例

次の3つの図A、B、Cは同じ周期とサンプリングレートを持つsin波です。 いずれも画像のサイズは同じであり、Excelでグラフのみをpdfにエキスポートしています。 A、Bは0~10,000まで、Cは0~1,000,000までの範囲を示しています。

ファイル容量順に並べると、A→C→Bの順でファイル容量が大きくなります。 具体的にはAは163 KB、Bは7.81 MB、Cは14.8 MBとなっています。 AとBは見た目は非常に似ていますが、どちらかと言えばBとCのファイル容量が近い値を示しています。

このファイル容量の違いは画像の作成方法によって起きています。 Aのsin波は10,000点、BとCのsin波は1,000,000点のデータを利用してグラフを描画しています。 A、Cは全てグラフの中に点が収まっていますが、Bのグラフだけ横軸の範囲を指定し、利用したデータがすべてグラフの表示領域に収まっていません。 これをベクタ画像を編集できる画像編集ソフト(今回はAffinity Designer)で取り込み、sin波を選択すると次の図のようになります。

A

B

C

AとCはデータ点数が違うが、グラフの範囲内に収まっています。 しかし、Bは範囲から大きくはみ出しています。 ふつうはマスクされている影響で見えていませんが、一度エキスポートしたものを別アプリケーションで表示されるということは確かに存在していることを示しています。 しかもBの点はCと比べて遠い座標にまでプロットされているので、記録されている一つ一つの点の座標数値が大きくなっています。 そのためCよりBの方がファイル容量が増えていると考えられます。

解決策

1つ目の解決策はデータの範囲を選択する際、必要最小限の範囲を指定することです。 こうすれば、そもそもBのようにならずAのような状態で出力できます。 ファイルをエキスポートする際やグラフのデザインを変更するときの動作も軽量になります。 しかし、手動でデータの範囲を見分けるため、作成している図によっては手間がかかるかもしれません。

2つ目の方法はベクタ画像を編集できるソフトで、はみ出ている分を切り取れる方法です。 これはあとからいつでもできるので、手っ取り早く、元のファイルの場所がわからなくなっても編集できます。 問題点として、そもそも出力するpdfの範囲が大きいと出力までの時間と画像編集ソフトで読み込むまでの時間が長くなること、取り込む際にフォーマットが崩れる可能性があるため注意が必要です。

大きい容量のファイルをpdfに組み込むとスクロールの時にスタックしたり、挙動が重くなってしまうので、上記の解決策でサクサク動く論文を作っていきましょう。

コメント

自動更新
コメントはまだありません
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
graph
thumbnail
importA
importC
importB