seaborn: countplot rotation and formatting to decimal places
我正在尝试同时旋转(45度)和缩小Seaborn中计数图的xticks(小数点后两位)。但是很遗憾,我无法使它正常工作。
这是我的代码:
1 2 3 4 5 6 7 8 9 10 | from matplotlib.ticker import FormatStrFormatter import seaborn as sns import pandas as pd import matplotlib.pyplot as plt wine_data = pd.read_csv('winequality-white.csv', sep=';') fig, ax1 = plt.subplots(figsize=(15,5)) ax1.xaxis.set_tick_params(rotation=45) ax1.xaxis.set_major_formatter(FormatStrFormatter('%.2f')) sns.countplot(data=wine_data, x='alcohol', ax=ax1) |
您可以在此处下载数据集。
这是结果:
如您所见,轮换有效,但格式无效。
您确定
在任何情况下,您的问题都源于以下事实:它是一个分类图,因此每个刻度线都将一个类别表示为字符串,而不是如给定数据时所期望的浮点数。要修复数字的舍入,因此您需要提取那些字符串,将它们转换回数字,并在再次将它们转换回字符串时对其进行舍入...
1 2 3 4 | fig, ax1 = plt.subplots(figsize=(10,4)) sns.countplot(data=wine_data, x='alcohol', ax=ax1) ax1.set_xticklabels(['{:.2f}'.format(float(t.get_text())) for t in ax1.get_xticklabels()]) ax1.xaxis.set_tick_params(rotation=45) |