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

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

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

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

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

Python

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

Q&A

解決済

1回答

12211閲覧

グラフの色を条件で分けたい

mega_ne

総合スコア16

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2019/05/18 00:24

python

1import numpy as np 2import matplotlib.pyplot as plt 3X = np.arange(0,11,1) 4Y = np.arange(0,11,1) 5F = np.array([0,0,0,0,0,0,1,1,0,1,0])

このように配列があったとして、X-Yのグラフを作成したいとします。
この時、Fが0の時は赤色、1の時は青色のようにFでグラフの色分けはできますでしょうか。
scatterではforとifでX[i], Y[i], F[i]の組みを回して色分けできたのですが、plotでもできないかなと思いました。また、なるべくforを使わないで描画したいです。

自分の書いたforとifのscatterのコードを以下に示します。

python

1for i in range(len(X)): 2 plt.scatter(X[i], Y[i], color='red') if F[i] == 0 else plt.scatter(X[i], Y[i], color='blue') 3plt.show()

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

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

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

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

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

guest

回答1

0

ベストアンサー

for文を使っていますが、以下のようにすればできます。

Python

1import matplotlib.pyplot as plt 2import numpy as np 3 4X = np.arange(0,11,1) 5Y = np.arange(0,11,1) 6F = np.array([0,0,0,0,0,0,1,1,0,1,0]) 7 8# 1線分ずつ色を変えてplotする 9for i in range(len(X)): 10 plt.plot(X[i:i+2], Y[i:i+2], color= 'red' if F[i] == 0 else 'blue') 11 12plt.show()

イメージ説明

投稿2019/05/18 01:20

can110

総合スコア38266

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

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

mega_ne

2019/05/18 07:35

データがもし直線ではなく曲線の場合、この方法だと2点間を直線に結びそうなのでカクカクになりますか?
can110

2019/05/18 07:44

plot関数ではsin関数などの曲線も実際には点配列で渡すので直線で描画されます。 区間を小さくすればカクツキも目立たなくなります。
mega_ne

2019/05/18 13:39

確かにそうでした、完全に忘れていました。 colorの後にifを書くことができるとは思いもよりませんでした。 できましたいつもありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問