前提・実現したいこと
一つ上の行の値と比較し、それぞれの大小による場合分けを行い、
散布図に示したいです。aが増大でbも増大、aが増大でbが減少、
aが減少でbが増大、aが減少でbが増大というように場合分けをしたいです。
該当のソースコード
import pandas as pd import matplotlib.pyplot as plt list1=[[17,34],[16,22],[12,27],[15,25],[21,26],[23,22]] index1 = ["1", "2", "3","4","5","6"] columns1 =["a", "b"] df=pd.DataFrame(data=list1, index=index1, columns=columns1) df2=df.diff() x1=df['a'] x2=df2['a'] y1=df['b'] y2=df2['b'] def select_color(u,v): if v > 0 & u > 0 : return 'r' elif v < 0 & u >0: return 'b' elif v>0 & u<0 : return 'g' elif v<0 & u<0: return 'y' else: return 'k' plt.scatter(x1,y1,c=[[select_color(u,v) for u in x2 ]for v in y2] ,s=10, alpha=0.4)
発生している問題・エラーメッセージ
TypeError: unsupported operand type(s) for &: 'int' and 'float'
補足情報(FW/ツールのバージョンなど)
python3
jupyter notebook
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/04 14:45