如何创建Python iplot图形,颜色随值变化?
这是我的部分数据 我数我的数据如何创建Python iplot图形,颜色随值变化?,python,plot,plotly,Python,Plot,Plotly,这是我的部分数据 我数我的数据 count_interests = interests.count() 然后做了一个图表 count_interests.iplot(kind = 'bar', xTitle='Interests', yTitle='Number of Person', colors='Red') 我曾多次尝试寻找一个函数,该函数使用值更改columns color,以使较大和较小的列显示不同的颜色 我知道有colorscale和color函数,我试了很多次都找不到。有人
count_interests = interests.count()
然后做了一个图表
count_interests.iplot(kind = 'bar', xTitle='Interests', yTitle='Number of Person', colors='Red')
我曾多次尝试寻找一个函数,该函数使用值更改columns color,以使较大和较小的列显示不同的颜色
我知道有
colorscale
和color
函数,我试了很多次都找不到。有人知道任何函数吗?您可以定义一个函数,该函数为每个值返回一个颜色,然后在列表中传递每个条的颜色
import pandas as pd
import plotly
def color(val, median, std):
if val > median + std:
return 'darkgreen'
if val < median - std:
return 'darkred'
return 'orange'
df = pd.DataFrame({'cinema': [1, 2, 5, 3, 3, None],
'theatre': [3, 0, 8, 4, 0, 4],
'wine': [3, 2, 5, None, 1, None],
'beer': [4, 8, 2, None, None, None]})
med = df.count().median()
std = df.count().std()
colors = [color(i, med, std) for i in df.count()]
fig = plotly.graph_objs.Bar(x=df.columns,
y=df.count(),
marker=dict(color=colors))
plotly.offline.plot([fig])
将熊猫作为pd导入
绘声绘色地导入
def颜色(val、中值、标准):
如果val>中值+标准:
返回“暗绿色”
如果val<中值-标准:
返回'darkred'
返回“橙色”
df=pd.DataFrame({'cinema':[1,2,5,3,3,无],
《剧院》:[3,0,8,4,0,4],
“葡萄酒”:[3,2,5,无,1,无],
“啤酒”:[4,8,2,无,无,无])
med=df.count().median()
std=df.count().std()
colors=[df.count()中i的颜色(i、med、std)]
fig=绘图仪对象条(x=df.columns,
y=df.count(),
标记=记录(颜色=颜色))
plotly.offline.plot([图])
您可以定义一个函数,该函数返回每个值的颜色,然后在列表中传递每个条的颜色
import pandas as pd
import plotly
def color(val, median, std):
if val > median + std:
return 'darkgreen'
if val < median - std:
return 'darkred'
return 'orange'
df = pd.DataFrame({'cinema': [1, 2, 5, 3, 3, None],
'theatre': [3, 0, 8, 4, 0, 4],
'wine': [3, 2, 5, None, 1, None],
'beer': [4, 8, 2, None, None, None]})
med = df.count().median()
std = df.count().std()
colors = [color(i, med, std) for i in df.count()]
fig = plotly.graph_objs.Bar(x=df.columns,
y=df.count(),
marker=dict(color=colors))
plotly.offline.plot([fig])
将熊猫作为pd导入
绘声绘色地导入
def颜色(val、中值、标准):
如果val>中值+标准:
返回“暗绿色”
如果val<中值-标准:
返回'darkred'
返回“橙色”
df=pd.DataFrame({'cinema':[1,2,5,3,3,无],
《剧院》:[3,0,8,4,0,4],
“葡萄酒”:[3,2,5,无,1,无],
“啤酒”:[4,8,2,无,无,无])
med=df.count().median()
std=df.count().std()
colors=[df.count()中i的颜色(i、med、std)]
fig=绘图仪对象条(x=df.columns,
y=df.count(),
标记=记录(颜色=颜色))
plotly.offline.plot([图])
也可以通过pd.pivot\u table()
从行到列,或通过为条创建单独的跟踪列表,对条进行着色。这里,以sum()
为例对每一列进行聚合。代码如下:
# Import libraries
import datetime
from datetime import date
import pandas as pd
import numpy as np
from plotly import __version__
%matplotlib inline
import cufflinks as cf
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
init_notebook_mode(connected=True)
cf.go_offline()
import plotly.graph_objs as go
import plotly.offline as pyo
# Create dataframe
INT_M_PUB = [0,0,0,0,0,1,0,0,0,0]
INT_M_CINEMA = [1,1,1,0,0,0,0,0,0,1]
INT_M_THEATRE = [1,0,1,0,0,1,0,1,0,1]
INT_M_GYM = [0,0,0,0,0,1,0,0,0,1]
INT_M_ENTERTAIN = [0,0,1,1,0,1,0,1,0,1]
INT_M_EATOUT = [0,1,1,0,0,1,0,0,1,1]
INT_M_WINE = [0,0,0,0,0,1,0,0,0,1]
interests = pd.DataFrame({'INT_M_PUB':INT_M_PUB, 'INT_M_CINEMA':INT_M_CINEMA, 'INT_M_THEATRE':INT_M_THEATRE,
'INT_M_GYM':INT_M_GYM, 'INT_M_ENTERTAIN':INT_M_ENTERTAIN, 'INT_M_EATOUT':INT_M_EATOUT,
'INT_M_WINE':INT_M_WINE
})
interests.head(2)
dfm = interests.sum().reset_index().rename(columns={'index':'interests', 0:'value'})
dfm
# Re-creating the plot similar to that in question (note: y-axis scales are different)
df = dfm.copy()
col_list = df.columns
df.iplot(kind = 'bar', x='interests', y='value', xTitle='Interests', yTitle='Number of Person', title='These bars need to be colored', color='red')
也可以通过pd.pivot\u table()
从行到列,或通过为条创建单独的跟踪列表,对条进行着色。这里,以sum()
为例对每一列进行聚合。代码如下:
# Import libraries
import datetime
from datetime import date
import pandas as pd
import numpy as np
from plotly import __version__
%matplotlib inline
import cufflinks as cf
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
init_notebook_mode(connected=True)
cf.go_offline()
import plotly.graph_objs as go
import plotly.offline as pyo
# Create dataframe
INT_M_PUB = [0,0,0,0,0,1,0,0,0,0]
INT_M_CINEMA = [1,1,1,0,0,0,0,0,0,1]
INT_M_THEATRE = [1,0,1,0,0,1,0,1,0,1]
INT_M_GYM = [0,0,0,0,0,1,0,0,0,1]
INT_M_ENTERTAIN = [0,0,1,1,0,1,0,1,0,1]
INT_M_EATOUT = [0,1,1,0,0,1,0,0,1,1]
INT_M_WINE = [0,0,0,0,0,1,0,0,0,1]
interests = pd.DataFrame({'INT_M_PUB':INT_M_PUB, 'INT_M_CINEMA':INT_M_CINEMA, 'INT_M_THEATRE':INT_M_THEATRE,
'INT_M_GYM':INT_M_GYM, 'INT_M_ENTERTAIN':INT_M_ENTERTAIN, 'INT_M_EATOUT':INT_M_EATOUT,
'INT_M_WINE':INT_M_WINE
})
interests.head(2)
dfm = interests.sum().reset_index().rename(columns={'index':'interests', 0:'value'})
dfm
# Re-creating the plot similar to that in question (note: y-axis scales are different)
df = dfm.copy()
col_list = df.columns
df.iplot(kind = 'bar', x='interests', y='value', xTitle='Interests', yTitle='Number of Person', title='These bars need to be colored', color='red')