有谁知道通常最佳做法是将数据可视化,以显示不同类别随时间的增长情况?
在我的例子中考虑"类别"作为一种产品," Type"作为模型和值作为性能指标。我想以一种方式可视化数据,让我优先考虑哪种类别"类别"和#34; Type"平均值增加最多。
我遇到的挑战是,在我总结表格数据以显示随时间的变化之后,我能够提出来比较和可视化汇总数据的最佳方法是显示变化的平均值对于其自己的Excel选项中的每个单独类别。
必须有更好的方法来做到这一点!
我在matplotlib中完成了一个三维柱形图 - 每个类别都有一行,但它不够有效。
有可能有人从经验中知道最佳解决方案。
现在,随着时间的推移显示平均值,按"类别"分组。和"键入"在我的例子中。
也许我根本不应该将它视为熊猫桌或matplotlib条形图。
如果我的目标是确定'类别'它的各自' Type'在平均增长最有希望的地方,我应该怎么做?
我真的很感激任何帮助或建议。
import pandas as pd
import numpy as np
import scipy
from scipy import stats
import warnings;warnings.filterwarnings("ignore")
def calc_slope(row):
mask = row.notnull()
a = scipy.stats.linregress(row[mask.values], y=axisvalues[mask])
return pd.Series(a._asdict())
table=pd.DataFrame({'Category':['A','A','A','B','C','C','C','B','B','A','A','A','B','B','D','A','B','B','A','C','B','B','C','A','A','C','B','B','A','A','A','B','B','B','B'],
'Type':['I','I','I','III','II','II','II','III','III','I','I','I','III','III','II','I','III','III','I','II','III','I','II','III','I','II','III','I','II','II','II','II','II','II','II'],
'Quarter':['2016-Q1','2017-Q2','2017-Q3','2017-Q4','2017-Q2','2016-Q2','2017-Q2','2016-Q3','2016-Q4','2016-Q2','2016-Q3','2017-Q4','2016-Q1',\
'2016-Q2','2016-Q4','2016-Q4','2017-Q2','2017-Q3','2016-Q3','2016-Q4','2016-Q2','2017-Q2','2016-Q1','2017-Q4','2016-Q4','2017-Q2',\
'2016-Q1','2017-Q2','2016-Q1','2017-Q2','2016-Q4','2016-Q1','2017-Q2','2017-Q3','2017-Q4'],
'Value':np.random.randint(100,1000,size=35)})
db=(table.groupby(['Category','Type','Quarter']).filter(lambda group: len(group) >= 1)).groupby(['Category','Type','Quarter'])["Value"].mean()
db=db.unstack()
axisvalues= np.arange(1,len(db.columns)+1) #used in calc_slope function
db = db.join(db.apply(calc_slope,axis=1))
print(db)
答案 0 :(得分:1)
对于此类问题,您应该考虑seaborn。
import seaborn as sns
# reshape the data into 'tidy form' for seaborn
melted = pd.melt(db.reset_index(),
value_vars=[c for c in db.columns if '-Q' in c],
value_name='Mean',
var_name='Quarter',
id_vars=['Type', 'Category'])
g = sns.factorplot(data=melted, x='Quarter', y='Mean',
col='Type', hue='Category', kind='point')
您可以更改自己的情节类型,并快速轻松地探索周围。例如:
并改变'种类'关键字:
[因为早上2:30编辑]也许适合手段的趋势?