在进行散点图时,如何获得seaborn颜色?
import matplotlib.pyplot as plt
import seaborn as sns
ax=fig.add_subplot(111)
for f in files:
ax.scatter(args) # all datasets end up same colour
#plt.plot(args) # cycles through palette correctly
Run Code Online (Sandbox Code Playgroud) 以下问题说明如何更改图例的背景颜色: matplotlib图例背景颜色.但是,如果我使用seaborn,这不起作用.有没有办法做到这一点?
import matplotlib.pyplot as plt
import numpy as np
a = np.random.rand(10,1)
plt.plot(a, label='label')
legend = plt.legend()
frame = legend.get_frame()
frame.set_facecolor('green')
plt.show()
import seaborn as sns
plt.plot(a, label='label')
legend = plt.legend()
frame = legend.get_frame()
frame.set_facecolor('green')
plt.show()
Run Code Online (Sandbox Code Playgroud)

我在使用Seaborn增加我的情节数字时遇到了麻烦.我正在使用sns.pairplot来绘制数据帧的列.
%matplotlib inline
plt.rcParams['figure.figsize']=10,10
columns=list(df.columns.values)
g=sns.pairplot(df, kind='reg', x_vars=columns,y_vars = ['Column 1'])
Run Code Online (Sandbox Code Playgroud)
数据填充的数据很好,但数字太小.我认为plot.rCParams ['figure.figsize']会控制数字的大小,但它似乎没有生效.我尝试了一些来自在线主板的不同建议,但似乎没有任何效果.
将lmplot在seaborn拟合回归模型的截距.但是,有时我想要在没有截距的情况下拟合回归模型,即通过原点进行回归.
例如:
In [1]: import numpy as np
...: import pandas as pd
...: import seaborn as sns
...: import matplotlib.pyplot as plt
...: import statsmodels.formula.api as sfa
...:
In [2]: %matplotlib inline
In [3]: np.random.seed(2016)
In [4]: x = np.linspace(0, 10, 32)
In [5]: y = 0.3 * x + np.random.randn(len(x))
In [6]: df = pd.DataFrame({'x': x, 'y': y})
In [7]: r = sfa.ols('y ~ x + 0', data=df).fit()
In [8]: sns.lmplot(x='x', y='y', data=df, fit_reg=True) …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试使用Seaborn为我的学术论文创建情节.这些图看起来很棒且易于生成,但是我遇到的一个问题是对图中的字体大小进行了精细控制.
我的论文中的字体大小为9pt,我想确保我的图中的字体大小为9pt或10pt.但在seaborn中,字体大小主要通过字体缩放来控制sns.set_context("paper", font_scale=0.9).所以除了通过反复试验之外,我很难找到合适的字体大小.有没有更有效的方法来做到这一点?
我还想确保不同的seaborn图之间的字体大小是一致的.但并非所有的seaborn图都具有相同的尺寸,所以看起来在所有图上使用相同的font_scale并不一定会在这些不同的图上创建相同的字体大小?
我在下面附上了我的代码.我很感激有关如何为两栏学术论文格式化图表的任何评论.我的目标是能够控制图形的大小而不会扭曲字体大小或图形.我用Latex写论文.
# Seaborn setting
sns.set(style='whitegrid', rc={"grid.linewidth": 0.1})
sns.set_context("paper", font_scale=0.9)
plt.figure(figsize=(3.1, 3)) # Two column paper. Each column is about 3.15 inch wide.
color = sns.color_palette("Set2", 6)
# Create a box plot for my data
splot = sns.boxplot(data=df, palette=color, whis=np.inf,
width=0.5, linewidth = 0.7)
# Labels and clean up on the plot
splot.set_ylabel('Normalized WS')
plt.xticks(rotation=90)
plt.tight_layout()
splot.yaxis.grid(True, clip_on=False)
sns.despine(left=True, bottom=True)
plt.savefig('test.pdf', bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud) 如何用中值标记seaborn图中的每个箱图?
例如
import seaborn as sns
sns.set_style("whitegrid")
tips = sns.load_dataset("tips")
ax = sns.boxplot(x="day", y="total_bill", data=tips)
Run Code Online (Sandbox Code Playgroud)
如何用中位数或平均值标记每个箱图?
通常当我做树形图和热图时,我使用距离矩阵并做一堆SciPy东西.我想尝试Seaborn但Seaborn想要我的数据是矩形的(行=样本,cols =属性,而不是距离矩阵)?
我本质上想seaborn用作后端来计算我的树形图并将其粘贴到我的热图上.这可能吗?如果没有,这可能是未来的特色.
也许有我可以调整的参数,所以它可以采用距离矩阵而不是矩形矩阵?
这是用法:
seaborn.clustermap¶
seaborn.clustermap(data, pivot_kws=None, method='average', metric='euclidean',
z_score=None, standard_scale=None, figsize=None, cbar_kws=None, row_cluster=True,
col_cluster=True, row_linkage=None, col_linkage=None, row_colors=None,
col_colors=None, mask=None, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target
DF = pd.DataFrame(X, index = ["iris_%d" % (i) for i in range(X.shape[0])], columns = iris.feature_names)
Run Code Online (Sandbox Code Playgroud)
我不认为我的方法在下面是正确的,因为我给它一个预先计算的距离矩阵,而不是它要求的矩形数据矩阵.没有关于如何使用相关/距离矩阵的示例,clustermap但有https://stanford.edu/~mwaskom/software/seaborn/examples/network_correlations.html,但排序没有与普通sns.heatmap功能集群.
DF_corr = DF.T.corr()
DF_dism = 1 - DF_corr
sns.clustermap(DF_dism)
Run Code Online (Sandbox Code Playgroud)
我有这样的数据帧
import seaborn as sns
import pandas as pd
%pylab inline
df = pd.DataFrame({'a' :['one','one','two','two','one','two','one','one','one','two'], 'b': [1,2,1,2,1,2,1,2,1,1], 'c': [1,2,3,4,6,1,2,3,4,6]})
Run Code Online (Sandbox Code Playgroud)
单个箱图是可以的
sns.boxplot( y="b", x= "a", data=df, orient='v' )
Run Code Online (Sandbox Code Playgroud)
但我想为所有变量构建一个子图.我做
names = ['b', 'c']
plt.subplots(1,2)
sub = []
for name in names:
ax = sns.boxplot( y=name, x= "a", data=df, orient='v' )
sub.append(ax)
Run Code Online (Sandbox Code Playgroud)
我明白了
怎么解决?thanx的帮助
我无法从ggplot2切换到seaborn.目前使用的是Anaconda v.4.5.8和Python 3.6.3
我找不到任何图表.例如,我可以从seaborn的网站上获取任何代码并运行:
import matplotlib as plt
import seaborn as sns
sns.set(style="ticks")
dots = sns.load_dataset("dots")
# Define a palette to ensure that colors will be
# shared across the facets
palette = dict(zip(dots.coherence.unique(),
sns.color_palette("rocket_r", 6)))
# Plot the lines on two facets
sns.relplot(x="time", y="firing_rate",
hue="coherence", size="choice", col="align",
size_order=["T1", "T2"], palette=palette,
height=5, aspect=.75, facet_kws=dict(sharex=False),
kind="line", legend="full", data=dots)
sns.plt.show() #this was not on site code but tried it(plt.show() as referenced by other posts)
Run Code Online (Sandbox Code Playgroud)
错误信息:
File "<ipython-input-8-893759310442>", line 13, in <module>
sns.relplot(x="time", …Run Code Online (Sandbox Code Playgroud) 我正在使用factorplot(kind="bar").
如何缩放y轴,例如使用对数刻度?
我试图修补情节的轴,但这总是以某种方式弄乱了条形图,所以请先尝试你的解决方案,以确保它真的有效.
seaborn ×10
python ×9
matplotlib ×4
plot ×3
python-3.x ×2
boxplot ×1
heatmap ×1
legend ×1
loops ×1