相关疑难解决方法(0)

使用matplotlib面向对象的界面用seaborn绘图

我更喜欢使用matplotlibOOP风格:

f, axarr = plt.subplots(2, sharex=True)
axarr[0].plot(...)
axarr[1].plot(...)
Run Code Online (Sandbox Code Playgroud)

这样可以更轻松地跟踪多个图形和子图.

问题:如何使用seaborn这种方式?或者,如何将此示例更改为OOP样式?如何将seaborn绘图函数描述为lmplot哪个Figure或哪个Axes绘图?

python oop matplotlib seaborn

93
推荐指数
1
解决办法
6万
查看次数

旋转seaborn barplot的刻度标签

我试图显示带有旋转的x轴标签的图表,但图表没有显示.

import seaborn as sns
%matplotlib inline

yellow='#FFB11E'
by_school=sns.barplot(x ='Organization Name',y ='Score',data = combined.sort('Organization Name'),color=yellow,ci=None)
Run Code Online (Sandbox Code Playgroud)

此时我可以看到图像,但是在我设置xticklabel之后,我再也看不到图像只是一个对象引用了.(我会张贴图片,但我没有足够的声誉:()

by_school.set_xticklabels('Organization Name',rotation=45)

<matplotlib.axes._subplots.AxesSubplot at 0x3971a6a0>
Run Code Online (Sandbox Code Playgroud)

这里发布了一个类似的问题:在seaborn factorplot中旋转标签文本, 但解决方案无效.

python matplotlib seaborn

32
推荐指数
3
解决办法
4万
查看次数

在seaborn boxplot中旋转xtick标签?

我有一个问题与2014年的问题基本相同(见这里).但是,我的脚本仍然会抛出错误.

这就是我所做的:我有一个带有几列的pandas数据帧.我绘制了一个简单的boxplot比较.

g = sns.boxplot(x='categories', y='oxygen', hue='target', data=df)
g.set_xticklabels(rotation=30)
Run Code Online (Sandbox Code Playgroud)

该图如下所示:

在此输入图像描述

我想将x标签旋转30度.因此我使用g.set_xticklabels(rotation=30).但是,我收到以下错误:

set_xticklabels() missing 1 required positional argument: 'labels'

我不知道如何将matplotlib labels论证传递给海关sns.boxplot.有任何想法吗?

matplotlib python-3.x pandas seaborn

22
推荐指数
2
解决办法
2万
查看次数

修改 x 轴下方凌乱和重叠日期标签的最优雅方法?(Seaborn,条形图)

df (Pandas DataFrame) 有两列:Date (as datetime64) 和 Amount (as float)。

我使用条形图根据时间绘制 Amount 列中的值:

sns.barplot(x="Date", y="Amount", data=df)
plt.show()
Run Code Online (Sandbox Code Playgroud)

然而,日期标签一团糟(见图)。在 Pandas 中处理这个问题的优雅方式是什么?我正在考虑从标签中删除月份和年份,或者将标签旋转 90 度。这些将如何完成,或者有更好的选择吗?谢谢你。

在 x 轴上重叠日期标签

python label bar-chart pandas seaborn

5
推荐指数
2
解决办法
5347
查看次数

如何使用seaborn.objects旋转xticks

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

python rotation seaborn xticks seaborn-0.12.x

5
推荐指数
1
解决办法
1437
查看次数

使用旋转的xlabels绘制Seaborn Python中的条形图

如何在没有任何统计数据的情况下在Seaborn中绘制简单的条形图?数据集只是名称和值.

import pandas
df = pandas.DataFrame({"name": ["Bob Johnson", "Mary Cramer", "Joe Ellis"], "vals": [1,2,3]})
Run Code Online (Sandbox Code Playgroud)

我想将此绘制为条形图,其中xlabels从name列和y轴值中拉出,vals并使x轴标签旋转45度.怎么做到呢?使用sns.barplot像:

sns.barplot(x="name", y="vals", data=df)
Run Code Online (Sandbox Code Playgroud)

将计算此处不相关的统计数据.

python matplotlib bar-chart seaborn

1
推荐指数
1
解决办法
3681
查看次数

Seaborn Python xtick 标签不会旋转

我很抱歉再次问这个问题,因为我知道这之前已经被问过几次了,我已经研究了我可以在其他所有线程上找到的所有其他解决方案,但没有一个对我有用。无论我尝试什么,这些 xlabels 仍然总是水平出现并混杂在一起。我不知道为什么我的不工作而其他人工作,但我怀疑这与我在图中有三个子图有关。

我已经尝试了以下,以及许多其他的事情:

ax1.set_xticklabels(rotation=30) <-- 什么也没发生

axs[0].set_xticklabels(rotation=30) <-- 错误

plt.xticks(rotation=45) <-- 什么也没发生

这是代码和图。

    customer_rev_df = pd.DataFrame(customer_rev, columns='Week Revenue Pieces Stops'.split())
    print(customer_rev_df.set_index('Week'))
    sns.set_style(style='whitegrid')
    fig, axs = plt.subplots(ncols=3, figsize=(16, 6))
    ax1 = sns.factorplot(x='Week', y='Revenue', data=customer_rev_df, ax=axs[0])
    ax2 = sns.factorplot(x='Week', y='Stops', data=customer_rev_df, ax=axs[1])
    ax3 = sns.factorplot(x='Week', y='Pieces', data=customer_rev_df, ax=axs[2])
    axs[0].set_ylabel('Revenue')
    axs[1].set_ylabel('Stops')
    axs[2].set_ylabel('Pieces')
    axs[0].set_title('Weekly Revenue')
    axs[1].set_title('Weekly Stops')
    axs[2].set_title('Weekly Pieces')
    plt.tight_layout()
    fig.show()
Run Code Online (Sandbox Code Playgroud)

我的图的例子

我承认我还比较新,所以放轻松!任何帮助将不胜感激。谢谢!

python matplotlib seaborn

1
推荐指数
1
解决办法
2341
查看次数