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

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

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

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

Q&A

解決済

1回答

1118閲覧

Σを含んだ関数の極座標プロットがしたい

oswald

総合スコア2

Python

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

0グッド

0クリップ

投稿2021/01/21 05:45

編集2021/01/21 07:05

前提・実現したいこと

Σを含んだ関数の極座標プロットがしたいです。よろしくお願いいたします。

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

ValueError Traceback (most recent call last)
<ipython-input-37-ae5de46a8aa2> in <module>
----> 1 plt.polar(phi, sigma(f, -10, 10))

~\anaconda3\lib\site-packages\matplotlib\pyplot.py in polar(*args, **kwargs)
2321 'that does not have a polar projection.')
2322 ax = gca(polar=True)
-> 2323 ret = ax.plot(*args, **kwargs)
2324 return ret
2325

~\anaconda3\lib\site-packages\matplotlib\axes_axes.py in plot(self, scalex, scaley, data, *args, **kwargs)
1741 """
1742 kwargs = cbook.normalize_kwargs(kwargs, mlines.Line2D)
-> 1743 lines = [*self._get_lines(*args, data=data, **kwargs)]
1744 for line in lines:
1745 self.add_line(line)

~\anaconda3\lib\site-packages\matplotlib\axes_base.py in call(self, data, *args, **kwargs)
271 this += args[0],
272 args = args[1:]
--> 273 yield from self._plot_args(this, kwargs)
274
275 def get_next_color(self):

~\anaconda3\lib\site-packages\matplotlib\axes_base.py in _plot_args(self, tup, kwargs)
377 # element array of None which causes problems downstream.
378 if any(v is None for v in tup):
--> 379 raise ValueError("x, y, and format string must not be None")
380
381 kw = {}

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

該当のソースコード

Python

1import numpy as np 2import matplotlib.pyplot as plt 3from scipy.special import jv 4 5phi = np.linspace(0, 2*np.pi, 1000) 6 7def f(n, phi): 8 return np.cos(n*phi) 9 10def sigma(func, frm, to): 11 result = 0; 12 for n in range(frm, to+1): 13 result += func(n, phi) 14 return print(result) 15 16plt.polar(phi, sigma(f, -10, 10))

試したこと

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

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

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

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

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

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

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

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

TakaiY

2021/01/21 06:20

エラーメッセージはすべて貼りつけてください。 これだけでは、どこで発生した問題なのかわかりません。
oswald

2021/01/21 07:05

すみません、全文貼り付けました。
guest

回答1

0

ベストアンサー

python

1def sigma(func, frm, to): 2 result = 0; 3 for n in range(frm, to+1): 4 result += func(n, phi) 5 return print(result) 6 7plt.polar(phi, sigma(f, -10, 10))

sigma関数は、print関数の返り値 = 常にNone を返しています。
plt.polarは2つめの引数としてそれを使っているので、エラーになっているんでしょう。

たべん計算した値resultを返したいのでしょうから、

python

1 return result

としてください。

投稿2021/01/21 06:26

TakaiY

総合スコア13790

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

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

oswald

2021/01/21 07:10

printだとただ出力されるだけになってしまい、値を返さないということだったんですね・・・ 理解できました。回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問