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

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

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

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

Q&A

0回答

529閲覧

円の充填を参考に、描画したい

KAZENOMACHI

総合スコア12

Matplotlib

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

0グッド

0クリップ

投稿2021/03/29 06:35

編集2021/04/01 00:10

matplotlibで描画する方法がわからず、、、の質問です。中心点から円を描画する方法しか知らないのでいろいろ調べたのですが、添付のコードがやっと起動させることができ、ratio(面積比率)が最適化できたと思うのですが。
Cが中心で、rが半径と考え、以下のようにcircleを定義しました。

コード import cvxpy as cvx import numpy as np import numpy as ndarray import matplotlib.pyplot as plt import dccp W = 20 UB = 10 n = 40 r = np.linspace(1,5,n) c = cvx.Variable((n,2)) constr = [] for i in range(n-1): for j in range(i+1,n): constr.append(cvx.norm(c[i,:]-c[j,:])>=r[i]+r[j]) prob = cvx.Problem(cvx.Minimize(cvx.max(cvx.norm(c, axis=1)+r)), constr) prob = cvx.Problem(cvx.Minimize(cvx.max(cvx.max(cvx.abs(c),axis=1)+r)), constr) prob.solve(method = 'dccp', ccp_times = 1) l = cvx.max(cvx.max(cvx.abs(c),axis=1)+r).value*2 pi = np.pi ratio = pi*cvx.sum(cvx.square(r)).value/cvx.square(l).value print("ratio =", ratio) print(prob.status) fig = plt.figure() ax = fig.add_subplot(111,aspect='equal') ax.set_xlim([0,W]) ax.set_ylim([0,UB]) for i in range(n): circ = plt.Circle((c[i,:].value()), r[i]) circ = plt.Circle((0.1, 0.1), 0.1) ax.add_patch(circ) plt.show() ところが以下のエラーが出ました。描画がないとratio等は印字されるのですが。 ratio = 0.6385367436601236 Converged Traceback (most recent call last): File "C:\Users\xxxx\Desktop\円配列.py", line 35, in <module> circ = plt.Circle((c[i,:].value()), r[i]) TypeError: 'numpy.ndarray' object is not callable 解決にはなっていませんが、円が描画できると思ったのですが。

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

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

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

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

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

nanoseeing

2021/03/31 05:56

回答欄に書かれている情報を、質問欄に載せて修正していただけますか。 修正は、質問欄の「編集」ボタンから可能です。 不要になった回答欄は、削除依頼を出されると良いかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問