Here is my code, I don’t know how to make the positive value green , seems in my code the result is wrong
data = pd.DataFrame(
{
"Timestamp":['14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022',
'14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022',
'14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022',
'14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022','14-02-2022',
'14-02-2022','14-02-2022','14-02-2022','14-02-2022'],
"Name":['Binance','OKX','Kucoin','Houbi','FTX','Bitfinex','Bitmex','Bittrex','CoinList','BNB_US','MEXC','Crypto','Gate','Bitstamp','FTX_US','Coinbase',
'Binance','OKX','Kucoin','Houbi','FTX','Bitfinex','Bitmex','Bittrex','CoinList','BNB_US','MEXC','Crypto','Gate','Bitstamp','FTX_US','Coinbase',
'Binance','OKX','Kucoin','Houbi','FTX','Bitfinex','Bitmex','Bittrex','CoinList','BNB_US','MEXC','Crypto','Gate','Bitstamp','FTX_US','Coinbase'],
"Stablecoin":['USDT','USDT','USDT','USDT','USDT','USDT','USDT','USDT','USDT','USDT','USDT','USDT','USDT','USDT','USDT','USDT',
'USDC','USDC','USDC','USDC','USDC','USDC','USDC','USDC','USDC','USDC','USDC','USDC','USDC','USDC','USDC','USDC',
'BUSD','BUSD','BUSD','BUSD','BUSD','BUSD','BUSD','BUSD','BUSD','BUSD','BUSD','BUSD','BUSD','BUSD','BUSD','BUSD'],
"Value_USDT":[7.44,6.54,5.45,3,2,1.45,3,2,1,3,2,1,1,2,1,2,
7,6,5,3,2,1,3,2,1,3,2,1,1,2,1,2,
10.08,0,5,0,7,0,0,0,0,3,2,1,4,0,0,2],
'percentage':[7.87,6.78,-5.08,-0.9,2.87,1.87,-3.78,2.87,1.6,3.67,-2.4,1.43,1.34,2.23,1.34,2.43,
7.78,6.43,5.43,3.45,2,1,3,2,-1.98,3,2,-1.76,1,2,1,2,
10.08,0.09,-5,0.07,7,0.76,0.67,0.87,0.56,-3,2,-1.65,4,0.56,0.65,2]
}
)
data['all'] = 'all'
def set_colorscale(z, colors):
if len(colors) !=3:
raise ValueError("")
neg=z[np.where(z<0)]
pos=z[np.where(z>0)]
a, c = neg.min(), neg.max()
d, b = pos.min(), pos.max()
bvals= [a, c/2, d/2, b]
nvals = [(v-bvals[0])/(bvals[-1]-bvals[0]) for v in bvals]
dcolorscale = []
for k in range(len(colors)):
dcolorscale.extend([[nvals[k], colors[k]], [nvals[k+1], colors[k]]])
return dcolorscale
z = np.array(data['percentage'])
pl_colorscale= set_colorscale(z, ["#DC3714", "#C0C0C0", "#19BD1B"])
fig = px.treemap(data, path=[px.Constant('all'),'Stablecoin','Name','percentage'],values='Value_USDT')
fig.update_traces(textinfo = "label",textposition="middle center",hovertemplate='labels=%{label}<br>value=%{value}<extra></extra>')
fig.update_traces(hovertext=['percentage'])
fig.update_traces(marker=dict(
colors=data['percentage'],
colorscale=pl_colorscale,
showscale=True
))
fig.update_layout(width=1400, height=550,title="TreeMap stablecoin")
fig.show()
this is my result: