🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Matplotlib

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

Q&A

解決済

1回答

521閲覧

python ループ zip プロット

11390

総合スコア20

Matplotlib

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

0グッド

0クリップ

投稿2019/10/15 05:45

編集2019/10/15 06:36

#うまくループができず、zipの中に落とし込めません。どうやらfor文でエラーが起きているようなので構文が違うのか、式が違うのかよくわからないので、教えてください。

from sympy.geometry import Point, Circle, Triangle, Segment, Line import numpy as np import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(1, 1, 1) ax.set_aspect('equal') ax.grid() t=0.63 z=-0.133 L=0.0768 for n in range(15); if 15<n: p_n= (x_n, y_n) #(n=0,1,2...) x_n=t*(n//3)+L*(n%3) if n%3=0,2 y_n=0 else: y_n=-0.133 if i == 15:   break ax.plot(*zip(P_n)) #p1, p2, p3を結んでできる折れ線 g=ax.plot plt.xlim([0,7]) plt.ylim([-0.2,0.1]) plt.show(g)

------------------------------
pの中は下記を想定しています。
p1 = (0, 0)
p2 = (0.0768, -0.133)
p3 = (0.1536, 0)
p4= (0.63, 0)
p5= (0.7068,-0.133)
p6= (0.7836,0)
p7= (1.26,0)
p8= (1.3368,-0.133)
p9= (1.4136,0)
p10=(1.89,0)
p11=(1.9668,-0.133)
p12=(2.0436,0)
p13=(2.52,0)
p14=(2.5968,-0.133)
p15=(2.6736,0)

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

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

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

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

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

11390

2019/10/15 06:12

参考になります。 すいませんC言語は前使っていたので混じっていたようです。 pythonではどのようにすればよいでしょうか?
tiitoi

2019/10/15 06:20

n 番目の点 pn がどのような数式で表されるのか記載していただけますか?
11390

2019/10/15 06:29

p_n=(x_n,y_n) 中身は x_n=0.63*(n//3)+0.0768*(n%3) if n%3=0,2 y_n=0 else: y_n=-0.133
guest

回答1

0

ベストアンサー

p_n=(x_n,y_n)
中身は
x_n=0.63*(n//3)+0.0768*(n%3)
if n%3=0,2
y_n=0
else:
y_n=-0.133

各点を表す数式がわかっているのであれば、それをそのままコードにすればよいです。
numpy を使うと、for 文で1項ずつ計算するのではなく、n 項すべてを一度に計算できます。

python

1import matplotlib.pyplot as plt 2import numpy as np 3 4n = np.arange(0, 21) # 第0項 ~ 第20項 5 6# 各項の x, y の値 7xs = 0.63 * (n // 3) + 0.0768 * (n % 3) 8ys = np.where(n % 3 == 1, -0.133, 0) # n % 3 == 1 のときは -0.133 それ以外は 0 9 10# 描画する。 11for i, (x, y) in enumerate(zip(xs, ys)): 12 print(f"p[{i}] = ({x:.4f}, {y:.4f})") 13 14fig, ax = plt.subplots() 15ax.plot(xs, ys) 16 17plt.show()

イメージ説明

投稿2019/10/15 06:43

tiitoi

総合スコア21956

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

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

11390

2019/10/15 06:48

すいません。4fとはどういう意味でしょうか?
11390

2019/10/15 06:55

ありがとうございます!!
11390

2019/10/15 07:10 編集

追加で、初期値が現在(0.0)となっているのですが、 これを任意の数にするには、どうすればよいでしょうか? xsは足せばいいことはわかるんですが、ysをどうすればよいのかわかりません すいませんかいけつしました。
tiitoi

2019/10/15 07:11 編集

---- 自己解決されたようなのでコメント削除 ----
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問