python-3.x 如何旋转海运对象V0.12x图中的xticks

xzlaal3s  于 2023-01-10  发布在  Python
关注(0)|答案(1)|浏览(108)

碰巧,有没有办法旋转下图中的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()

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

import warnings
warnings.filterwarnings("ignore",category=UserWarning)
abithluo

abithluo1#

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

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))

相关问题