回答編集履歴

1

間違い修正と説明追加

2021/07/09 05:18

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -10,31 +10,25 @@
10
10
 
11
11
 
12
12
 
13
- */Lib/site-packages/pandas/plotting/_core.py
13
+ ~~*/Lib/site-packages/pandas/plotting/_core.py~~
14
14
 
15
-
15
+ */Lib/site-packages/pandas/plotting/_matplotlib/__init__.py
16
16
 
17
17
  ```python
18
18
 
19
- import importlib
19
+ def plot(data, kind, **kwargs):
20
20
 
21
- from typing import TYPE_CHECKING, Optional, Sequence, Tuple, Union
21
+ # Importing pyplot at the top of the file (before the converters are
22
22
 
23
+ # registered) causes problems in matplotlib 2 (converters seem to not
23
24
 
25
+ # work)
24
26
 
25
- from pandas._config import get_option
26
-
27
-
28
-
29
- from pandas._typing import Label
27
+ import matplotlib.pyplot as plt
30
-
31
- from pandas.util._decorators import Appender, Substitution
32
-
33
- ・・・
34
28
 
35
29
  ```
36
30
 
37
- の先頭行です。
31
+ とかです。
38
32
 
39
33
 
40
34
 
@@ -45,3 +39,59 @@
45
39
  これはmatplotlibの仕様です。
46
40
 
47
41
  matplotlibのいくつかの機能を使うためにはをdf.plotの前matplotlibの関数を使って準備しておく必要があり場合もあります。
42
+
43
+
44
+
45
+ 1点目
46
+
47
+ 上記の_core.pyは、import pandasの際に読み込まれるのでしょうか。
48
+
49
+
50
+
51
+ plotが最初に呼ばれたときです。
52
+
53
+
54
+
55
+ 2点目
56
+
57
+ もしimport pandasにより、matplotlibが同時にimportされるのなら、あえてimport matplotlibを(jupyterNotebookの)セルに記述する必要は、ないのでは、ないでしょうか。
58
+
59
+
60
+
61
+ Pythonにimportされるのと、それにある名前を使ってアクセスできるのは違います。
62
+
63
+ 明にimportせずに使う方法はありますが不便です。以下のように
64
+
65
+
66
+
67
+ ```python
68
+
69
+ df.plot()
70
+
71
+ impot sys
72
+
73
+ sys.modules['matplotlib.pyplot'].xlabel('訪問回数')
74
+
75
+ sys.modules['matplotlib.pyplot'].show()
76
+
77
+ ```
78
+
79
+ とか書けば動作はしますが、やりたくないでしょう。
80
+
81
+
82
+
83
+ 一般的にモジュールをimportした場合、そのモジュールがまだimportされていなければそのモジュールを読み込みますが、既に読み込まれている場合は読み込み済みのモジュールを指定された名前に束縛(bind)するだけです。
84
+
85
+
86
+
87
+ 既にmatplotlibがどこかでimportされているなら、
88
+
89
+ import matplotlib.pyplot as plt
90
+
91
+
92
+
93
+ impot sys
94
+
95
+ plt = sys.modules['matplotlib.pyplot']
96
+
97
+ は全く同じ意味ですので、普通は前者を使います。