#python
Вопрос:
У меня есть следующий код, и я хотел бы получить график, подобный тому, который помечен как «хочу», но вместо этого я получаю тот, где есть перекрытие по цвету. Я полагаю, что у панд может быть встроенный график, подобный тому, который я ищу, но, возможно, этот график, который я создаю, мог бы сделать то же самое.
Обновить:
Мне удалось заставить график работать, теперь мне нужно, чтобы цвета не повторялись. Существует повторение цвета для каждого «состояния» (т. Е. Dehli и т. Д.), Код был обновлен, чтобы отразить изменения.
код:
data = Table.read_table('IndiaStatus.csv')#.drop('Discharged', 'Discharge Ratio (%)','Total Cases','Active','Deaths')
data2 = data.to_df()
cols = list(data2.columns)
cols.remove('State/UTs')
# now iterate over the remaining columns and create a new zscore column
for col in cols:
col_zscore = col '_zscore'
data2[col_zscore] = (data2[col] - data2[col].mean())/data2[col].std(ddof=0)
print(data2)
data2.info()
data2["outlier"] = (abs(data2["Total Cases_zscore"])>1).astype(int)
print(data2)
delete_row = data2[data2["outlier"]== 1].index
data2 = data2.drop(delete_row)
print(data2)
data2["outlier2"] = ((data2["Active_zscore"])> 0.00).astype(int)
delete_row = data2[data2["outlier2"]== 1].index
data2 = data2.drop(delete_row)
'''
#Analyzing and removing outliers for Total Cases_zscore
sns.distplot(data2["Active_zscore"], kde = False, bins = 30)
g = sns.jointplot(x='Active_zscore', y='Active_zscore',
data=data2, hue='State/UTs')
plt.subplots_adjust(right=0.75)
g.ax_joint.legend(bbox_to_anchor=(1.25,1), loc='upper left', borderaxespad=0)
'''
print(data2)
print(data2.mean())
print(data2.std())
#data2.insert(1, column = "Level", value = np.where(data2["Active"] > 9700, "Severe", data["Active"] < 9700 amp; data["Active"] > 4850, 'Less_Severe','Not_Severe'))
col = 'Active'
conditions = [ data2['Active']<=600, data2['Active']<= 1200, data2['Active'] >1200 ]
choices = [ 'Not_Severe','Less_Severe',"Severe" ]
data2["Level"] = np.select(conditions, choices, default=np.nan)
print(data2)
ax=data2.pivot_table(index='Level', columns = 'State/UTs', values = 'Total Cases').plot(kind='bar',stacked=True,figsize=(15,15),fontsize=25)
ax.legend(fontsize=25)
#set ylim
#plt.ylim(-1, 20,5)
#plt.xlim(-1,4,8)
#grid on
plt.grid()
# set y=0
ax.axhline(0, color='black', lw=1)
#change size of legend
ax.legend(fontsize=8,loc=(1.0,0.2))
#hiding upper and right axis layout
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
#changing the thickness
ax.spines['bottom'].set_linewidth(3)
ax.spines['left'].set_linewidth(3)
#setlabels
ax.set_xlabel('Level',fontsize=20,color='r')
ax.set_ylabel('Total Cases',fontsize=20,color='r')
#rotation
plt.xticks(rotation=0)
Хотеть:
Фактический Объем Производства:
Обновить:
Ответ №1:
Сделайте фон графика белым, используя
sns.set_style("whitegrid")
Комментарии:
1. Дело не в этом. Цвета накладываются друг на друга, создавая разные цветовые оттенки.