如何使用seaborn.objects旋转xticks

Rob*_*utt 5 python rotation seaborn xticks seaborn-0.12.x

碰巧,有没有办法旋转下图中的 xticks(只是为了使其更具可读性)?通常 sns.xticks()在新的 seaborn.objects 开发中不起作用(这太棒了!)

tcap.\
    assign(date_time2 = tcap['date_time'].dt.date).\
    groupby(['date_time2', 'person']).\
    agg(counts = ('person', 'count')).\
    reset_index().\
    pipe(so.Plot, x = "date_time2", y = "counts", color = "person").\
            add(so.Line(marker="o", edgecolor="w")).\
            label(x = "Date", y = "# of messages",
                  color = str.capitalize,
                  title = "Plot 2: Volume of messages by person, by day").\
            scale(color=so.Nominal(order=["lorne_a_20014", "kayla_princess94"])).\
            show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

此外,我的 x 轴是分类的,并且此警告: 使用分类单位绘制可解析为浮点数或日期的字符串列表。如果这些字符串应绘制为数字,请在绘制之前转换为适当的数据类型。出现。我尝试使用:

import warnings
warnings.filterwarnings("ignore",category=UserWarning)
Run Code Online (Sandbox Code Playgroud)

Nic*_*CHK 5

这可以通过创建 Axis 对象、在其中旋转轴,然后使用该so.Plot().on()方法应用旋转轴标签来完成。请注意,如果您还计划添加构面,则这将不起作用(我在询问如何将其与构面结合时发现了您的问题)。

import seaborn.objects as so
import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({'a':[1,2,3],
                   'b':[4,5,6]})

fig, ax = plt.subplots()
ax.xaxis.set_tick_params(rotation=90)

(so.Plot(df, x = 'a', y = 'b')
 .add(so.Line())
 .on(ax))
Run Code Online (Sandbox Code Playgroud)

带有旋转 x 轴标签的折线图