我无法为 seaborn 线图正确设置 x 轴刻度标签。
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.DataFrame({'a':np.random.rand(8),'b':np.random.rand(8)})
sns.set(style="darkgrid")
g = sns.lineplot(data=df)
g.set_xticklabels(['2011','2012','2013','2014','2015','2016','2017','2018'])
Run Code Online (Sandbox Code Playgroud)
x 轴上的年份未正确对齐。
我无法更改 seaborn 中 2d 线的颜色。我的图中有 2 条线,我想为它们分配不同的颜色。
sns.set(style="whitegrid")
data = pd.DataFrame(result_prices, columns=['Size percentage increase'])
data2 = pd.DataFrame(result_sizes, columns=['Size percentage increase'])
sns_plot = sns.lineplot(data=data, color='red', linewidth=2.5)
sns_plot = sns.lineplot(data=data2, linewidth=2.5)
sns_plot.figure.savefig("size_percentage_increase.png")
Run Code Online (Sandbox Code Playgroud)
但是color='red'不变色,为什么呢?
我有一些 seaborn 线图,但我不知道如何增加线条的宽度。
这是我的代码
#graph 1
sns.lineplot(x="date", y="nps", data=df_nps, ax=ax1, label="NPS", color='#0550D0')
sns.lineplot(x="date", y="ema28", data=df_nps, ax=ax1, label="EMA28", color='#7DF8F3')
sns.lineplot(x="date", y="ema7", data=df_nps, ax=ax1, label="EMA7", color='orange')
#graph 2
dfz_nps_lineplot = sns.lineplot(x="date", y="nps", data=dfz_nps, ax=ax2, label="NPS", color='#0550D0')
dfz_nps_lineplot = sns.lineplot(x="date", y="ema28", data=dfz_nps, ax=ax2, label="EMA28", color='#7DF8F3')
dfz_nps_lineplot = sns.lineplot(x="date", y="ema7", data=dfz_nps, ax=ax2, label="EMA7", color='orange')
#graph3
dfp_nps_lineplot = sns.lineplot(x="date", y="nps", data=dfp_nps, ax=ax3, label="NPS", color='#0550D0')
dfp_nps_lineplot = sns.lineplot(x="date", y="ema28", data=dfp_nps, ax=ax3, label="EMA28", color='#7DF8F3')
dfp_nps_lineplot = sns.lineplot(x="date", y="ema7", data=dfp_nps, ax=ax3, label="EMA7", color='orange')
# formatting
plt.show()
Run Code Online (Sandbox Code Playgroud)
这就是我的线图现在的样子。
根据 seaborn 文档,这里 seaborn.distplot()已被弃用,支持的图为:seaborn.displot()和seaborn.histplot()。
但是,当我尝试使用displot()或 时histplot()出现以下属性错误:
AttributeError: module 'seaborn' has no attribute 'displot'
注意我可以成功运行seaborn.jointplot()和其他各种。
我发现这个 SO post Module Seaborn 没有属性 ''但这似乎不是我问题的解决方案。
我已经seaborn版本0.10.1我安装的MacOS版本10.15.5(19F101)
我今天早些时候有seaborn 0.9.0并且遇到了同样的问题,所以我使用App Cleaner & Uninstaller应用程序删除了我的Anaconda发行版并重新安装。现在我有seaborn 版本 0.10.1。
Anaconda的全新安装不应该处理所有依赖项和要求吗?
请参见下面的属性错误屏幕截图。任何想法发生了什么?
更新:
上面的图似乎最近才从seaborn 0.11.0开始可用。所以我正在尝试通过以下方式安装新的 seaborn:conda install seaborn==0.11.0但是conda和/或频道似乎有问题。它试图解决环境问题,但它处于永无止境的循环中。我终止了这个过程,然后再试一次,同样的事情。
(base)MacBook-Air:$ conda install seaborn==0.11.0
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial …Run Code Online (Sandbox Code Playgroud) 我创建了一个非常简单的热图图表,Seaborn显示了相似性方阵.这是我使用的一行代码:
sns.heatmap(sim_mat, linewidths=0, square=True, robust=True)
sns.plt.show()
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出:

我想做的是在x和y轴上表示不是我的实例的标签而是一个彩色指示器(想象每个轴上的一个小的palplot),其中每种颜色代表与每个实例相关的另一个变量(让我们说我有这个信息存储了一个名为的列表labels加上另一个图例,这个信息旁边的那个信息指定了热图的颜色(一个像那样lmplot).重要的是这两种信息具有不同的调色板.
Seaborn有可能吗?
UPDATE
我正在寻找的是clustermap正确的建议.
sns.clustermap(sim_mat, row_colors=label_cols, col_colors=label_cols
row_cluster=False, col_cluster=False)
Run Code Online (Sandbox Code Playgroud)
这是我得到的顺序,点和线太小,我没有看到在文档中放大它们的方法.我想
另外,如何添加图例并将两个图例放在另一个图例的相同位置?

我正在尝试使用Python中的Seaborn模块自定义一些数字,但我没有运气创建自定义标签或注释.我有一些代码生成下图:
plot = sns.FacetGrid(data = data, col = 'bot', margin_titles = True).set_titles('Human', 'Bot')
bins = np.linspace(0, 2000, 15)
plot = plot.map(plt.hist, 'friends_count', color = 'black', lw = 0, bins = bins)
plot.set_axis_labels('Number Following', 'Count')
sns.despine(left = True, bottom = True)
Run Code Online (Sandbox Code Playgroud)
我想做两件事:1.用有意义的文本替换默认因子标签,例如'bot = 0.0',以及2.在每个类别的平均数后面绘制垂直线.
这是一个自包含的例子:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
fake = pd.DataFrame({'val': [1, 2, 2, 3, 3, 2, 1, 1, 2, 3], 'group': [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]}) …Run Code Online (Sandbox Code Playgroud) 我无法找到有关seaborn热图的任何关键词的任何文件annot_kws或cbar_kws.
有一个秘密的地方我可以找到这样的东西吗?
我们可以得到一个情节如下
import numpy as np, pandas as pd; np.random.seed(0)
import seaborn as sns; sns.set(style="white", color_codes=True)
tips = sns.load_dataset("tips")
g = sns.lmplot(x="total_bill", y="tip", data=tips)
sns.plt.show()
Run Code Online (Sandbox Code Playgroud)
但是当我们有很多数据点时,回归线就不再可见了.如何更改线条的颜色?我再也找不到命令了
我正在尝试查看两个不同类变量的Seaborn配对图,我希望在offdiagonals上看到KDE而不是散点图.该文档提供了有关如何为所有数据执行KDE 的说明,但我希望为每个子类的数据看到单独的KDE.建议欢迎!
我的代码看起来像这样:
plot = sns.pairplot(
df,
vars=labels,
hue='has_accident',
palette='Set1',
diag_kind='kde',
)
Run Code Online (Sandbox Code Playgroud)
这导致:
如您所见,数据足够密集,很难看到对角线上红色和蓝色数据的差异.
我的数据框看起来像这样:
date score
2017-06-04 90
2017-06-03 80
2017-06-02 70
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时:
sns.regplot(x=date, y=score, data=df)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
TypeError: reduction operation 'mean' not allowed for this dtype
Run Code Online (Sandbox Code Playgroud)
日期的dtype是datetime64[ns],int64对于得分列.
如何隐藏date列以便它regplot可以工作?
python ×10
seaborn ×10
matplotlib ×4
colors ×2
pandas ×2
anaconda ×1
conda ×1
heatmap ×1
numpy ×1
python-3.x ×1