感谢您花时间点击这个..!
对,我正在尝试制作热图.
我遇到的问题是我有这样的数据:
请看DataFrame的屏幕显示:
g.head(11)
Out = :
profit
a b
1.04 1.09 0.886
1.08 1.03 0.03
1.05 0.17
1.09 0.39
1.16 2.85
1.1 1.12 -0.346
1.14 0.34
1.29 1.23
1.11 1.06 0.87
1.08 1.23
1.09 -2.86
Run Code Online (Sandbox Code Playgroud)
这些值都是唯一的,这意味着a&b的每个组合只有一个利润
我想:绘制x,y的热图,颜色是z值.
我的x坐标是一个列表,以0.01为间隔从1.01到2.0
我的y坐标是一个相同的列表,例如[1.01,1.02,1.03 .. 1.99,2.0]所以我做了这个x&y的网格网格
我的z坐标我希望从上面的列中获得"利润",当x = a和b = y时,绘制利润
但我遇到了矢量化问题,使用x和y通过网格网格提取利润,并在a = x和b = y时查找利润.我将解释更多
使用x和y制作网格网格对于x和y的所有组合,找到a&b和查找利润,使用a = x和b = y如果不存在这样的组合,则返回0如果组合存在,如果利润为+,则绘制绿点如果利润为 - ,则绘制一个红点.利润越大,绿色越亮损失越大,红色越亮,零可以用蓝色表示
这是一个尝试,因为我做了一些代码..我已经改变了这么多尝试不同的事情,它可能没有多大意义,但你会得到我一直在努力做的事情的要点..
def z_func(x,y):
#print 'x = ',x
q = plotDF[(plotDF.x == x) & (plotDF.y == y)].profit.values
return q
#return x …Run Code Online (Sandbox Code Playgroud)