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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1391閲覧

matplotlib内のrcParamsが見つからない

Nwen321

総合スコア1

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/11/13 06:52

前提・実現したいこと

site-packages の中の matplotlib というdir の中の pyplot.py がどのように働いているか見てみたくてプログラム内部を見ていました。
特にmatplotlib.pyplot.figureがどのようにmatplotlib.figure.Figure のインスタンスをつくるのかを知りたくてmatplotlib.pyplot.figure内を見ていたのですが、どこでmatplotlib.figure.Figureを作っているのかが分かりませんでした。そこでmatplotlib.pyplot.figure内にあったrcParamsを呼び出したときにmatplotlib.figure.Figureのインスタンスをつくっているのではないかと思い、今度はrcParamsを見てみようと思ったところ、以下のとおり不明な点が発生いたしました。

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

pyplot.py内部の序盤には以下のとおりの記載がありました。
from matplotlib import rcParams, rcParamsDefault, get_backend, rcParamsOrig
そこで、matplotlib というdir内にrcParams.pyがないか探しましたがそのようなファイルは存在しませんでした。
どこにかかるファイルはあるのでしょうか、それとも何か思い違いをしているのでしょうか。

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

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

ここにより詳細な情報を記載してください。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

  • それとも何か思い違いをしているのでしょうか。

from XXX import YYY

と書いたときのYYYはモジュールである必要はありません。

  • どう調べれば良いか

Python

1>>> from matplotlib import rcParams 2>>> print(type(rcParams)) 3<class 'matplotlib.RcParams'>

これを見れば、rcParamsはmatplotlibで定義されているクラスRcParamsのインスタンスであることがわかります。
matplotlibを調べて見ましょう。

Python

1>>> import matplotlib 2>>> print(matplotlib) 3<module 'matplotlib' from 'C:\Users\myname\anaconda3\lib\site-packages\matplotlib\__init__.py'>

これを見れば、matplotlのソースはmatplotlib_init_.pyであることがわかります。

matplotlib_init_.pyを調べて見ると、

Python

1@docstring.Substitution("\n".join(map("- {}".format, rcsetup._validators))) 2class RcParams(MutableMapping, dict):

があって、これがクラス定義です。
rcParamsをどう初期しているかはご自身で調べて見てください。

投稿2021/11/13 07:22

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Nwen321

2021/11/13 07:41

解決いたしました! ご丁寧な解説、本当にありがとうございました! 助かりました!
guest

0

既に解決済みですが、参考までに inspect を使う方法を挙げておきます。

python

1>>> import inspect 2>>> import matplotlib 3 4>>> type_rcParams = type(matplotlib.rcParams) 5>>> print(type_rcParams) 6<class 'matplotlib.RcParams'> 7 8>>> source_file_path = inspect.getsourcefile(type_rcParams) 9>>> print(source_file_path) 10/usr/local/lib/python3.9/dist-packages/matplotlib/__init__.py 11 12>>> source_code = inspect.getsource(type_rcParams) 13>>> print(source_code[:500]) 14@docstring.Substitution("\n".join(map("- {}".format, rcsetup._validators))) 15class RcParams(MutableMapping, dict): 16 """ 17 A dictionary object including validation. 18 19 Validating functions are defined and associated with rc parameters in 20 :mod:`matplotlib.rcsetup`. 21 22 The list of rcParams is: 23 24 %s 25 26 See Also 27 -------- 28 :ref:`customizing-with-matplotlibrc-files` 29 """ 30 31 validate = rcsetup._validators 32 33 # validate values on the way in 34 def __init__(self, *args, **k 35 36# help() : built-in function 37>>> help(matplotlib.rcParams) 38 39Help on RcParams in module matplotlib object: 40 41class RcParams(collections.abc.MutableMapping, builtins.dict) 42 | RcParams(*args, **kwargs) 43 | 44 | A dictionary object including validation. 45 | 46 | Validating functions are defined and associated with rc parameters in 47 | :mod:`matplotlib.rcsetup`. 48 | 49 | The list of rcParams is: 50 | 51 | - backend 52 : 53

投稿2021/11/13 07:44

melian

総合スコア20655

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Nwen321

2021/12/19 11:58

遅れましたが、回答いただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問