我正在用seaborn绘制一个图形作为sns和pylab作为plt:
before
xticks应该是0,1,2,3,但它们的绘制方式如下:0.0,1.0,2.0,3.0
有谁知道我必须添加什么才能将它们作为整数? - (数据是熊猫数据帧)谢谢
答案 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()