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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

355閲覧

min,max点が定められた線分をmatplotlibを使用してコンパクトに収納したい

iface

総合スコア42

Matplotlib

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2022/01/25 09:34

編集2022/01/25 19:38

質問失礼します。
下記の配列を使って、下図のグラフを作成しました。
配列の0番目 : y座標, 1番目 : min点, 2番目 : max点を表しています。

python

1self.result = [[1, 0, 6], [2, 3, 4], [3, 0, 5], [4, 1, 8], [5, 7, 9], [6, 7, 10]]

イメージ説明
下記のプログラムでは、self.result[4]、self.result[5]がself.result[1]、self.result[2]の後ろに収まるようにするための関数を作成しました。
しかし、下図のようにself.result[2]の後ろで重なってしまっています。
確かに、self.result[4]とself.result[5]の0番目の配列が更新されてしまうことは明らかです。

これを解消するにはどうしたら良いでしょうか。
アドバイスをいただきたいです。

python

1def left_edge(self): 2 for i in range(1, 7): 3 for j in range(1, 7): 4 if int(self.result[i - 1][2]) < int(self.result[j - 1][1]): 5 self.result[j - 1][0] = int(self.result[i - 1][0])

イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下です。

python

1def left_edge(self): 2 skip_list = [] 3 for i in range(1, 7): 4 for j in range(1, 7): 5 if j in skip_list: 6 continue 7 if int(self.result[i - 1][2]) < int(self.result[j - 1][1]): 8 self.result[j - 1][0] = int(self.result[i - 1][0]) 9 skip_list.append(j) 10 break

実行結果

python

1>>> self.result = [[1, 0, 6], [2, 3, 4], [3, 0, 5], [4, 1, 8], [5, 7, 9], [6, 7, 10]] 2>>> def left_edge(self): 3... skip_list = [] 4... for i in range(1, 7): 5... for j in range(1, 7): 6... if j in skip_list: 7... continue 8... if int(self.result[i - 1][2]) < int(self.result[j - 1][1]): 9... self.result[j - 1][0] = int(self.result[i - 1][0]) 10... skip_list.append(j) 11... break 12... 13>>> left_edge(self) 14>>> print(self.result) 15[[1, 0, 6], [2, 3, 4], [3, 0, 5], [4, 1, 8], [1, 7, 9], [2, 7, 10]]

投稿2022/01/25 10:38

ppaul

総合スコア24666

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問