我使用Seaborn的FacetGrid绘制一些直方图,我认为自动bin大小仅使用每个类别的数据(而不是每个子图),这会导致一些奇怪的结果(参见skinny) y = 2
)中的绿色垃圾箱:
g = sns.FacetGrid(df, row='y', hue='category', size=3, aspect=2, sharex='none')
_ = g.map(plt.hist, 'x', alpha=0.6)
有没有办法(使用Seaborn,而不是回到matplotlib)使每个图的直方图箱大小相等?
我知道我可以手动指定所有的bin宽度,但这会强制所有直方图都是相同的x范围(请参阅笔记本)。
笔记本:https://gist.github.com/alexlouden/42b5983f5106ec92c092f8a2697847e6
答案 0 :(得分:4)
您需要为@Override
public boolean onOptionsItemSelected(MenuItem item) {
boolean result = true;
switch (item.getItemId()) {
case R.id.menu_details_save_toggle:
if (mIsSaved) { //you could modify this to check the icon/text of the menu item
mIsSaved = false;
} else {
mIsSaved = true;
}
invalidateOptionsMenu(); //cause a redraw
break;
default:
result = super.onOptionsItemSelected(item);
}
return result;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (mIsSaved) {
//in production you'd probably be better off keeping a reference to the item
menu.findItem(R.id.menu_details_save_toggle)
.setIcon(R.drawable.action_saved_on)
.setTitle(R.string.action_unsave);
} else {
menu.findItem(R.id.menu_details_save_toggle)
.setIcon(R.drawable.action_saved_off)
.setTitle(R.string.action_save);
}
return super.onPrepareOptionsMenu(menu);
}
定义一个包装函数来执行色调分组本身,例如
plt.hist