seaborn,pylab - 将xticks从float更改为int

时间:2015-05-19 13:32:37

标签: python matplotlib seaborn

我正在用seaborn绘制一个图形作为sns和pylab作为plt:

before

xticks应该是0,1,2,3,但它们的绘制方式如下:0.0,1.0,2.0,3.0

有谁知道我必须添加什么才能将它们作为整数? - (数据是熊猫数据帧)谢谢

4 个答案:

答案 0 :(得分:3)

您可以使用轴格式化程序执行此操作:

from  matplotlib.ticker import FuncFormatter

然后,在你的barplot行之后:

plt.gca().xaxis.set_major_formatter(FuncFormatter(lambda x, _: int(x)))

答案 1 :(得分:0)

这是解决刻度的直观方法:

import matplotlib.pyplot as plt
plt.scatter(x,y)
plt.xticks(np.arange(min(x), max(x)+1, 1))
plt.yticks(np.arange(min(y), max(y)+1, 1))

答案 2 :(得分:0)

该指南显示了如何操作 facetgrid: https://seaborn.pydata.org/tutorial/axis_grids.html

with sns.axes_style("white"):
     g = sns.FacetGrid(tips, row="sex", col="smoker", margin_titles=True, height=2.5)
g.map(sns.scatterplot, "total_bill", "tip", color="#334488")
g.set_axis_labels("Total bill (US Dollars)", "Tip")
g.set(xticks=[10, 30, 50], yticks=[2, 6, 10])
g.fig.subplots_adjust(wspace=.02, hspace=.02)

“g.set”行采用 xticks 参数。 例如,我有一个 Pandas 数据框列,其中整数 1 到 18 显示为 1.0 等。 我是这样解决的:

g.set(xticks=list(range(1,19)))

希望这有用。

答案 3 :(得分:0)

如果您使用的是 seaborn(也适用于 jupyter notebook),您也可以这样做。

from  matplotlib.ticker import FuncFormatter
ax = sns.barplot(x='x', y='y',hue='', data=data_set_pd)
ax.xaxis.set_major_formatter(FuncFormatter(lambda x, _: int(x)))
plt.show()