

Pythonを始めたばかりの者です。

[code]

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0, 2 * np.pi, 50)
    def f(x):
        np.sin(x)       
    plt.plot(x, f(x), label = 'y')
    plt.show()
    
[/code]

と入力すると、

> ValueError: x, y, and format string must not be None

と表示されます。  
このエラーはどういう意味でしょうか、また、原因はなんでしょうか？


CC BY-SA 4.0
2019-05-05T12:48:04.327
54748
2021-02-12T14:13:53.387
2021-02-12T14:13:53.387
7290
34192
question
python matplotlib
x, y, and format string must not be None のエラー


原因としては、関数 `f(x)` が値を戻していないから、になります(`return np.sin(x)` とする必要があります)。

補足すると、Pythonでは明示的に `return` しなかった場合、関数の返り値は常に `None` になり、このため ValueError では
`must not be None` (= Noneという値を指定してはいけない) というメッセージが表示されています。

* * *

_この投稿は[@metropolis さんのコメント](https://ja.stackoverflow.com/questions/54748/x-y-
and-format-string-must-not-be-
none-%e3%81%ae%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6#comment58513_54748)
と [@PicoSushi さんのコメント](https://ja.stackoverflow.com/questions/54748/x-y-and-
format-string-must-not-be-
none-%e3%81%ae%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6#comment58518_54748)
の内容を元に コミュニティwiki として投稿しました。_


CC BY-SA 4.0
2020-08-20T02:29:38.360
69709
2020-08-20T02:29:38.360
3060
54748
answer