前提・実現したいこと
三角形の座標をcsvファイルから持ってきたもので指定して連続描画したいです。
*重なっても問題ないです。
初歩的な質問かもしれませんが、よろしくお願い致します。
発生している問題・エラーメッセージ
TypeError Traceback (most recent call last) <ipython-input-3-38ace9a9ae41> in <module> 12 b = df.loc[i, 'b'] 13 c = df.loc[i, 'c'] ---> 14 tri = plt.Polygon((a,0),(b,1),(c,0)) 15 ax.add_patch(tri) 16 plt.show() TypeError: __init__() takes from 2 to 3 positional arguments but 4 were given
該当のソースコード
import matplotlib.pyplot as plt import pandas as pd #データのインポート df = pd.read_csv('hoge.csv') #三角形の描画 fig = plt.figure() ax = fig.add_subplot(1,1,1) for i in range(len(df)): a = df.loc[i, 'a'] b = df.loc[i, 'b'] c = df.loc[i, 'c'] tri = plt.Polygon((a,0),(b,1),(c,0)) ax.add_patch(tri) plt.show()
plt.Polygon()は配列を渡すのではないでしょうか。
ご回答ありがとうございます。
あるサイト(http://programming.blogo.jp/python/matplotlib/triangle)
を参考にしたのですが
"""
tri = plt.Polygon(((0.1,0.1),(0.1,0.6),(0.6,0.1)),fc="#770000")
"""
とあったため、配列でなくても可能ではないかと思うのですが
間違いがあればご指摘お願い致します。
申し訳ありません、勘違いをしておりました。
座標を配列にして渡すのですね。
ありがとうございます、試してみます。
タプルでもOKですが、要は座標値の集合を渡すということです。
tri = plt.Polygon(((a,0),(b,1),(c,0)))ではどうでしょう。
行き違いで回答してしまいました。
>座標を配列にして渡すのですね。
そうです。
おかげさまで、解決しました。
この度はご教示いただきありがとうございました!
tatamyiwathy様
ベストアンサーにさせて頂きたいので
お手数ですが簡単でいいので回答に書いていただけますでしょうか?
よろしくお願い致します。
ご配慮ありがとうございます。回答いたしました。
いえいえ、この度は回答頂き大変ありがとうございます。
回答1件
あなたの回答
tips
プレビュー