2017-08-01 70 views
0

我正在做一些数据可视化,并发现了一个小问题(对我来说)来显示数据。 我使用的Haberman Survival Data Set并有我的代码:“交换”python中的堆栈条(Pandas + matplotlib)

import pandas as pd 
import numpy as np 
import seaborn as sns 
import matplotlib.pyplot as plt 



data = pd.read_table('haberman.data', sep = ",") 
data['lived'] = data['lived'].map({ 1: 'Yes', 2: 'No'}) 

dataYear = data.sort_values(['year']) 

plot1 = dataYear.groupby('year')['lived'].value_counts() 
#plot1.unstack().head() 


my_plot = plot1.unstack().plot(kind='bar', stacked = True, title="Patients X Year") 
my_plot.set_xlabel("Year") 
my_plot.set_ylabel("Total") 
plt.show() 

所以我的目的是要看看治疗的年份可以促进患者的治疗。此代码生成这个美丽的曲线图:

My graph

我只是想从底部交换号(蓝色)的是(绿色)以上。 可能大熊猫有一个“秘密”参数(是的,我在pandas.plot和matplotlib的文档中搜索),或者它可能更复杂一些,涉及到安排数据。

回答

0

这是否适合您?

import pandas as pd 
import numpy as np 
import seaborn as sns 
import matplotlib.pyplot as plt 



data = pd.read_table('haberman.data', sep = ",") 
data['lived'] = data['lived'].map({ 1: 'Yes', 2: 'No'}) 

dataYear = data.sort_values(['year']) 

plot1 = dataYear.groupby('year')['lived'].value_counts() 
#plot1.unstack().head() 


my_plot = plot1.unstack().plot(kind='bar', stacked = True, title="Patients X Year") 
my_plot.set_xlabel("Year") 
my_plot.set_ylabel("Total") 
plt.show() 
handles, labels = my_plot.get_legend_handles_labels() 
my_plot.legend(reversed(handles), reversed(labels) 
+0

您好,感谢您的回复,但它不起作用。 (我也尝试在代码中移动新行,但图表没有改变)。 – Hegaja