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

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

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

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

解決済

Python matplotlibでグラフの色をサンプルごとに変更する

Danrussia
Danrussia

総合スコア44

Matplotlib

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

1回答

0リアクション

0クリップ

7249閲覧

投稿2019/07/24 16:44

前提・実現したいこと

PythonのMatplotlibを使って、グラフの描画を行っています。

下記のデータセットの様に複数の"BeanNumber"があるなかで、ひとつの"BeanNumber"のみを選んで、グラフを作成した後に同様に"Color Code"の列の文字を習得して、グラフ描写の際にグラフの色を変えたいと思っています。

その動作を「該当のソースコード」の#★の部分でコードを書いたのですが、上手く動作しなかったです。
(文字列の認識が違う?,そもそもColor=#hoge のhogeには変数が入れられない?)

エラーコードから見るに、上手くColorの部分に代入できていないのですが、その部分を改善したいです。

###使用するデータセット(book1.csv)
各サンプル100個づつあります。(B2が100,B3が100,B4が100,,,,,,,,B39が100)
|Long axis|Short axis|Grain thickness|Sumple|BeanNumber|Color|Color Code|
|:--|:--:|--:|--:|--:|--:|
|0.92|0.91|0.73|くるみ豆|B2|黄色|#FFD700
|0,90|0.89|0.56|くるみ豆|B2|黄色|#FFD700
|1.04|0.97|0.63|くるみ豆|B2|黄色|#FFD700
|...||||
|0.97|0.92|0.74|五葉黒豆|B6|黒|#000000
|0.97|0.88|0.51|五葉黒豆|B6|黒|#000000
|...||||
|1.21|0.95|0.77|濃緑丸豆|B39|緑|#6B8E23
|0.92|0.85|0.83|濃緑丸豆|B39|緑|#6B8E23
|0.93|0.90|0.55|濃緑丸豆|B39|緑|#6B8E23
|1.10|0.96|0.67|濃緑丸豆|B39|緑|#6B8E23
|0.91|0.85|0.54|濃緑丸豆|B39|緑|#6B8E23

発生している問題・エラーメッセージ

Invalid RGBA argument: '#'

該当のソースコード

Python3

import os import matplotlib import matplotlib.pyplot as plt import pandas as pd import numpy as np plt.rcParams["font.family"] = "IPAPGothic" plt.rcParams["axes.linewidth"] = 3.0 plt.rcParams["font.size"] = 30 def plot(data, bean_number): df = data[data["BeanNumber"] == bean_number] if df.empty: print(f"bean number {bean_number} does not exist in the data frame.") return bean_name = df.iloc[0]["Sumple"] bean_number = df.iloc[0]["BeanNumber"] bean_color =df.iloc[0]["Color Code"]#★ # ------------------------------------- fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(40, 10)) plt.subplots_adjust(wspace=0.3, hspace=0.2) ax1.set_xlabel("長軸(cm)") ax1.set_ylabel("個数(個)") ax1.set_title(f"{bean_name} の長軸_{bean_number}") ax1.hist(df['Long axis'],range=(0.4, 1.4), bins=11, rwidth=0.7,edgecolor="k",color=f"{bean_color} ")#★ ax1.set_ylim([0, 60]) ax1.set_xticks([0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4]) ax1.set_yticks([5, 10, 15, 20, 25, 30,35,40,45,50,55]) ax2.set_xlabel("短軸(cm)") ax2.set_ylabel("個数(個)") ax2.set_title(f"{bean_name} の短軸_{bean_number}") ax2.hist(df["Short axis"],range=(0.4, 1.4),bins=11, rwidth=0.8, edgecolor="k", color=f"{bean_color} ") ax2.set_ylim([0, 60]) ax2.set_xticks([0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4]) ax2.set_yticks([5, 10, 15, 20, 25, 30,35,40,45,50,55]) ax3.set_xlabel("粒厚(cm)") ax3.set_ylabel("個数(個)") ax3.set_title(f"{bean_name} の粒厚_{bean_number}") ax3.hist(df["Grain thickness"],range=(0.4, 1.4),bins=11, rwidth=0.8, edgecolor="k", color=f"{bean_color} ") ax3.set_ylim([0, 60]) ax3.set_xticks([0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4]) ax3.set_yticks([5, 10, 15, 20, 25, 30,35,40,45,50,55]) plt.savefig(f"bean_number_{bean_number}.jpg") os.chdir("C:\Users\For Programming\Documents\image analysis-Total//") df = pd.read_csv("image analysis-Total-RESULT-VER2.csv", encoding="shift_jis") os.chdir("C:\Users\For Programming\Documents\figure2//")

発生している問題・エラーメッセージ

Invalid RGBA argument: '#'

補足情報(FW/ツールのバージョンなど)

Anaconda
Python
Pycharm
お忙しいとは思いますが、よろしくお願いいたします。
情報に不足がありましたら、ご指摘お願いいたします。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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

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

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Matplotlib

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。