teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

修正

2020/07/18 13:38

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -44,6 +44,20 @@
44
44
  savefig.dpi : 300
45
45
  ```
46
46
 
47
+ このように matplotlibrc に書いておくと、`import matplotlib.pyplot as plt` した段階で記述した項目が反映されています。
48
+
49
+ ```python
50
+ import matplotlib.pyplot as plt
51
+
52
+ print(plt.rcParams["font.family"]) # ['sans-serif']
53
+ print(plt.rcParams["xtick.direction"]) # in
54
+ print(plt.rcParams["ytick.direction"]) # in
55
+ print(plt.rcParams["xtick.major.width"]) # 2.0
56
+ print(plt.rcParams["ytick.major.width"]) # 2.0
57
+ print(plt.rcParams["font.size"]) # 16.0
58
+ print(plt.rcParams["axes.linewidth"]) # 2.0
59
+ ```
60
+
47
61
  上記記述で以下のコードを実行すると、質問と同じ図が作成できました。
48
62
  設定項目にないものは設定できないので、目盛りの書式等はコードから除くことはできません。
49
63
 

4

修正

2020/07/18 13:38

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -20,4 +20,44 @@
20
20
  config_path = config_dir / "matplotlibrc"
21
21
  print(f"設定ファイルの場所 {config_path}")
22
22
  shutil.copyfile(default_config_path, config_path)
23
- ```
23
+ ```
24
+
25
+ ## 追記
26
+
27
+ `matplotlibrc` は matplotlib のデフォルト設定を記述するファイルです。
28
+ Python のスクリプトをペタっと貼るのではなく、設定ファイルのフォーマットに従って、設定を追記します。どのように書けばいいかはコメントアウトされている各種設定項目に書いてあります。
29
+
30
+ 例えば、質問の内容だと以下を追記すればよいです。
31
+
32
+ ```
33
+ # Custom Settings
34
+ font.family : sans-serif
35
+ xtick.direction : in
36
+ ytick.direction : in
37
+ xtick.major.width : 2.0
38
+ ytick.major.width : 2.0
39
+ font.size : 16
40
+ axes.linewidth : 2.0
41
+ figure.figsize : 6.0, 6.0
42
+ figure.autolayout : True
43
+ savefig.transparent: True
44
+ savefig.dpi : 300
45
+ ```
46
+
47
+ 上記記述で以下のコードを実行すると、質問と同じ図が作成できました。
48
+ 設定項目にないものは設定できないので、目盛りの書式等はコードから除くことはできません。
49
+
50
+ ```
51
+ import matplotlib.pyplot as plt
52
+
53
+ plt.rcParams["font.size"] = 16 # Notebook の場合は必要
54
+
55
+ fig, ax = plt.subplots(figsize=(6, 6))
56
+ ax.xaxis.set_major_formatter(plt.FormatStrFormatter("%.3f"))
57
+ ax.yaxis.set_major_formatter(plt.FormatStrFormatter("%.3f"))
58
+ plt.locator_params(axis="y", nbins=6)
59
+
60
+ plt.show()
61
+ ```
62
+
63
+ ![イメージ説明](d4e90dce12aa1b6ba01c8203a962ce70.jpeg)

3

修正

2020/07/18 13:33

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -11,7 +11,6 @@
11
11
  from pathlib import Path
12
12
 
13
13
  import matplotlib as mpl
14
- import matplotlib.pyplot as plt # これを呼ばないと matplotlib.font_manager にアクセスできない
15
14
 
16
15
  # 設定ファイルをコピーする。
17
16
  config_dir = Path(mpl.get_configdir())

2

修正

2020/07/18 11:29

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -2,4 +2,23 @@
2
2
  matplotlibrc はデフォルトでは存在しないので、以下のコードをコピペして実行すれば作成できます。
3
3
  作成場所は `<ホームディレクトリ>/.config/matplotlib/matplotlibrc` になるので、作成したあとにテキストエディタで適宜編集してください。
4
4
 
5
- [matplotlib - コピペするだけで matplotlib を日本語化する方法](https://pystyle.info/japanize-matplotlib-just-by-copying-and-pasting/#outline__4)
5
+ [matplotlib - コピペするだけで matplotlib を日本語化する方法](https://pystyle.info/japanize-matplotlib-just-by-copying-and-pasting/#outline__4)
6
+
7
+ ## 追記
8
+
9
+ ```python
10
+ import shutil
11
+ from pathlib import Path
12
+
13
+ import matplotlib as mpl
14
+ import matplotlib.pyplot as plt # これを呼ばないと matplotlib.font_manager にアクセスできない
15
+
16
+ # 設定ファイルをコピーする。
17
+ config_dir = Path(mpl.get_configdir())
18
+ config_dir.mkdir(exist_ok=True, parents=True)
19
+
20
+ default_config_path = Path(mpl.__file__).parent / "mpl-data/matplotlibrc"
21
+ config_path = config_dir / "matplotlibrc"
22
+ print(f"設定ファイルの場所 {config_path}")
23
+ shutil.copyfile(default_config_path, config_path)
24
+ ```

1

修正

2020/07/18 11:27

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -1,4 +1,5 @@
1
1
  matplotlibrc に設定を記述しておけば、`import matplotlib.pyplot` したときに読み込まれます。
2
2
  matplotlibrc はデフォルトでは存在しないので、以下のコードをコピペして実行すれば作成できます。
3
+ 作成場所は `<ホームディレクトリ>/.config/matplotlib/matplotlibrc` になるので、作成したあとにテキストエディタで適宜編集してください。
3
4
 
4
5
  [matplotlib - コピペするだけで matplotlib を日本語化する方法](https://pystyle.info/japanize-matplotlib-just-by-copying-and-pasting/#outline__4)