2017-11-07 3 views
-2

この質問は、最初にそれを理解していなかった人によって独占され、下落しました。提供された答えは挑発的で、冗長で慎重に誤解を招くほどのものでした。私の質問を削除することができないと考えて、私はその内容を消去し、代わりに新しい内容を投稿することにしました。matplotlibの理解度リストを使って色を設定するには?

私は幸いにも、もっと寛大で礼儀正しい答えが提供されています。

+0

「df」とは何ですか? [mcve]と[再現性の良いパンダの例を作る方法]を読んでください。(https://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples) – ImportanceOfBeingErnest

+0

2つのリンクを読んでいますか?あなたにあげた? 'df'がDataFrameを示していることを知るだけでは不十分です。 – ImportanceOfBeingErnest

+2

私たちは 'df'が何を意味しているのか、@ImportanceOfBeingErnestがおそらく何を意味するのかは、' df' _look_が何をするのかということです。私。問題を再現して私たちのマシン上で実行できるような偽のデータを持つコードを提供してください。つまり、[MCVE](https://stackoverflow.com/help/mcve)です。 – DavidG

答えて

1

これは、検証可能な例が必要な理由を示すためです。

次のように、問題のコードが実際に目的の結果を生成するデータ構造について、確実に考えることができます。

import numpy as np; np.random.seed(1) 
import matplotlib.pyplot as plt 

class C(list): 
    def __init__(self, l): 
     self.curr = 0 
     list.__init__(self, l) 
     self.get = list.__getitem__ 

    def plot(self, kind, color): 
     plt.bar(range(len(self)), self, color=color) 

    def __getitem__(self,index): 
     self.curr = self.index(index) 
     return self 

    def count(self): 
     return self.get(self,self.curr) 


df = C(list(np.random.rand(15)*80000))  

# unchanged code from the question  
df.plot(kind='bar', color=['powderblue' if df[e].count() < 40000 else 'red' for e in df]) 

plt.show() 

enter image description here

したがって何mcveを提供することである何clearifyすることが重要です。

関連する問題