我正在使用seaborn jointplot进行散点图绘制,但我似乎无法得到一条简单的对角线...我正在得到一个AttributeError: 'JointGrid' object has no attribute 'get_xlim'.有没有人知道使用Seaborn的解决方法?
这是我的代码(标题也没有出现!给出了什么):
ax = sns.jointplot(x="Av Tomato-meter", y="Av Audience Score", data=director_combined_ratings, stat_func = None,
size = 8, xlim=(0,100), ylim=(0,100))
ax.plot(ax.get_xlim(), ax.get_ylim(), ls="--", c=".3") #this is the error line.
ax.title = "Average Tomato-meter vs Audience Score for Directors with over 10 Movies"
Run Code Online (Sandbox Code Playgroud)
在此先感谢大家.
如seaborn API中所述,以下代码将生成线性回归图.
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.jointplot(x="total_bill", y="tip", data=tips, kind='reg')
sns.plt.show()
Run Code Online (Sandbox Code Playgroud)

但是,由于有很多数据点,回归线不再可见.我怎样才能改变它的颜色?我找不到内置的seaborn命令.
如果线在背景中(即在点后面),我还想问如何将它带到前面.
我希望能够改变某些方块以表示统计显着性.我知道我可以掩盖不具有统计意义的方块,但我仍然希望保留该信息(而不是将值设置为零).执行此操作的选项包括1)使某些正方形上的文本变粗,2)添加类似阴影的功能,以便某些正方形具有点画,或3)向某些正方形添加符号.
有什么想法吗?谢谢!
我使用lambda跟随函数用NaN替换了缺少的值:
data = data.applymap(lambda x: np.nan if isinstance(x, basestring) and x.isspace() else x)
,数据是我正在处理的数据帧.
之后使用seaborn,我尝试绘制其中一个属性,使用seaborn.distplot进行alcconsumption,如下所示:
seaborn.distplot(data['alcconsumption'],hist=True,bins=100)
plt.xlabel('AlcoholConsumption')
plt.ylabel('Frequency(normalized 0->1)')
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误:
AttributeError: max must be larger than min in range parameter.
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像的df:
df.head()
Out[1]:
A B C
city0 40 12 73
city1 65 56 10
city2 77 58 71
city3 89 53 49
city4 33 98 90
Run Code Online (Sandbox Code Playgroud)
可以通过以下代码创建示例df:
df = pd.DataFrame(np.random.randint(100,size=(1000000,3)), columns=list('ABC'))
indx = ['city'+str(x) for x in range(0,1000000)]
df.index = indx
Run Code Online (Sandbox Code Playgroud)
我想做的是:
a)确定A列的适当直方图桶长度,并将每个城市分配给A列的桶
b)确定B列的适当直方图桶长度,并将每个城市分配给B列的桶
也许结果df看起来像(或者是否有更好的内置方式在熊猫?)
df.head()
Out[1]:
A B C Abkt Bbkt
city0 40 12 73 2 1
city1 65 56 10 4 3
city2 77 58 71 4 3
city3 89 53 49 5 3
city4 33 98 90 …Run Code Online (Sandbox Code Playgroud) 我的seaborn情节有一个很大的问题.由于某种原因,沿轴的数字打印的字体非常小,这使得它们不可读.我试着用它来扩展它们
with plt.rc_context(dict(sns.axes_style("whitegrid"),
**sns.plotting_context(font_scale=5))):
b = sns.violinplot(y="Draughts", data=dr)
Run Code Online (Sandbox Code Playgroud)
我想用seaborn包创建一个catplot,我知道为了能够做到这一点,我需要最新版本的seaborn(0.9.0).我用conda安装了包:
conda install seaborn
Run Code Online (Sandbox Code Playgroud)
但它下载的版本为0.8.1.
因此我使用pip安装了我想要的版本:
pip3 install seaborn==0.9.0
Run Code Online (Sandbox Code Playgroud)
但是每当我运行我的代码时,我都会遇到同样的错误: AttributeError:module'seaborn'没有属性'catplot'(仅在最新版本中提供的属性).
有人可以帮忙吗?
想象一下,我有一个包含 9 列的数据框。我希望能够达到与 df.hist() 相同的效果,但使用 sns.distplot()。
换句话说,我希望能够在 3 行 3 列的可视化中绘制数据框中每一列的 sns.distplot(),其中每个子图代表每列的唯一 sns.distplot() 总计数据框中的列数。
我对数据框的轴和列使用 for 循环进行了一些试验,但我只能获得指定列的结果。我不确定如何表示适用于行和列的代码。
我还研究了 sns.FacetGrid,但我不确定如何使用 FacetGrid 解决这个问题。
我发现 df.hist() 函数正是我想要的,但我希望能够使用 sns.distplot 来完成与 df.hist() 输出相同的表示形式中的所有列。
如果它有助于放置数据框的上下文,我基本上是在阅读 Google Colab 的加利福尼亚住房数据集的训练和测试集,其中包含除 Ocean_proximity 之外的所有列。如果您想使用该数据集帮助我解决这个问题,请从 Kaggle 获取并删除 Ocean_proximity 列。
我的 9 列方法:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('housing.csv')
df.drop('ocean_proximity', axis=1, inplace=True)
fig, axes = plt.subplots(ncols=len(df.columns), figsize=(30,15))
for ax, col in zip(axes, df.columns):
sns.distplot(df[col], ax=ax)
plt.tight_layout()
plt.show()
Run Code Online (Sandbox Code Playgroud) 我有以下代码将数据帧转储results到 HTML 表格中,以便TIME_FRAMES根据 seaborn 的颜色图对其中的列进行着色。
import seaborn as sns
TIME_FRAMES = ["24h", "7d", "30d", "1y"]
# Set CSS properties for th elements in dataframe
th_props = [
('font-size', '11px'),
('text-align', 'center'),
('font-weight', 'bold'),
('color', '#6d6d6d'),
('background-color', '#f7f7f9')
]
# Set CSS properties for td elements in dataframe
td_props = [
('font-size', '11px')
]
cm = sns.light_palette("green", as_cmap=True)
s = (results.style.background_gradient(cmap=cm, subset=TIME_FRAMES)
.set_table_styles(styles))
a = s.render()
with open("test.html", "w") as f:
f.write(a)
Run Code Online (Sandbox Code Playgroud)
由此,我收到警告:
/python3.7/site-packages/matplotlib/colors.py:512: RuntimeWarning: 在less xa[xa …