我试图用海运catplot来可视化一个简单的订单簿框架。然而,当我设置catplot的ax的x tick标签的格式时,它会将标签的值更改为索引(0-10而不是9.95-10.05)。我试过直接使用.barplot(),结果也一样。这是seaborn创建条形图的方式吗?我从来没有遇到过这个问题与线图。
book = pd.DataFrame({'price': np.arange(10.05, 9.95, -0.01), 'type': '?', 'qty': 0})
book.iloc[1, 2] = 1800
book.iloc[2, 2] = 500
book.iloc[3, 2] = 500
book.iloc[4, 2] = 100
book.iloc[0:6, 1] = 'Ask'
book.iloc[6, 2] = 100
book.iloc[7, 2] = 200
book.iloc[8, 2] = 600
book.iloc[9, 2] = 2500
book.iloc[6:11, 1] = 'Bid'
cat = sns.catplot(x='price', y='qty', data=book, hue='type', kind='bar')
cat.tick_params(axis='x', rotation=45)
cat.ax.xaxis.set_major_formatter(ticker.FuncFormatter(lambda x, pos: f'{x:.2f}'))
1条答案
按热度按时间xyhw6mcr1#
Python seaborn分类条形图,带有自定义格式的x轴刻度标签
您需要将整数x轴索引转换回嵌套框中相应的
price
值。例如,像这样:
np.arange
),然后颠倒绘制数据的顺序,以获得与所提供的预期输出相匹配的图,并显示在问题中。