我正在使用seaborn版本o.4和matplotlib版本1.42我有一个图表通过简单的绘图命令显示行和标记,例如.
plt.plot([1,5,3,8,4],'-bo');
Run Code Online (Sandbox Code Playgroud)
由于潜在的错误(https://github.com/mwaskom/seaborn/issues/344),在导入seaborn之后,相同的代码仅显示没有标记的行.
import seaborn as sb
plt.plot([1,5,3,8,4],'-bo');
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:在导入seaborn之后,有没有办法将所有参数重置回原始状态?
从python doc和stackoverflow,我理解如何在我的def函数中使用**kwargs.但是,我有一个案例需要两套**kwargs用于两个子功能.有人能告诉我如何正确地分离**kwargs吗?
这是我的目标:绘制点集和插值平滑曲线,
以及我天真的示例代码:
def smoothy(x,y, kind='cubic', order = 3, **kwargs_for_scatter, **kwargs_for_plot):
yn_cor = interp1d(x, y, kind=kind, assume_sorted = False)
xn = np.linspace(np.min(x), np.max(x), len(x) * order)
plt.scatter(x,y, **kwargs_for_scatter)
plt.plot(xn, yn_cor(xn), **kwargs_for_plot);
return
Run Code Online (Sandbox Code Playgroud)
感谢帮助.
在我的常规数据分析工作中,我已经切换到使用100%python,因为seaborn包可用.非常感谢这个精彩的套餐.但是,我想念的一个excel-chart功能是在使用lmplot()函数时显示polyfit方程和/或R2值.有谁知道添加它的简单方法?
使用Seaborn facetGrid图时.是否可以将行变量标签设置为左侧(例如,作为两行子图y轴标签的第一行)?
默认位置位于顶部,作为子图标题的一部分.不幸的是,合并后的文字有时会变得太长而无法合法地融入那个拥挤的空间.然后我尝试在实例化facetGrid对象时使用margin_titles = True选项.但在这种情况下,行变量标签位于图例右侧的外部,这可能与图表的距离太远.
因此,在我2美分的思想中,可能的简单方法可以改善美学:
margin_titles = True和时,在图例中移动边距标题legend_out=True 抱歉,没有积累足够的积分来添加图表示例.
Seaborn,对于某些特殊情况,图例中的列表顺序可能与绘图顺序不同.例如,以下代码:
df = pds.DataFrame({'group': [-2,-1,0] * 5, 'x' : range(5) * 3, 'y' : range(15)})
sbn.factorplot(kind = 'point', x = 'x', y= 'y', hue = 'group', data = df)
Run Code Online (Sandbox Code Playgroud)
绘图序列在[-2,-1,0]的组中,但图例按[-1,-2,0]的顺序列出.(前两个交换,可能是由于字符串内部排序而不是数字).我目前的解决方法是在factorplot中禁用图例,然后使用matplotlib语法放置图例.只是想知道是否有更好的方法来做这个比我的解决方法.
有人能告诉我如何在FacetGrid上留下额外的空间吗?我尝试将超级标题放在FacetGrid图的顶部,但由于默认设置中顶部的边距非常有限,最终超级标题与子标题重叠.
谢谢
有没有更优雅的方法来实现这一目标?我目前基于各种stackoverflow答案的解决方案如下
df = pds.DataFrame([[11,12,13,14],[15,16,17,18]], columns = [0,1,2,3])
print df
dT = df.T
dT.reindex(dT.index[::-1]).cumsum().reindex(dT.index).T
Run Code Online (Sandbox Code Playgroud)
输出
df is:
0 1 2 3
0 11 12 13 14
1 15 16 17 18
after by row reverse cumsum
0 1 2 3
0 50 39 27 14
1 66 51 35 18
Run Code Online (Sandbox Code Playgroud)
我必须经常对我的数据执行此操作(大小也更大),并尝试找出一种更短/更好的方法来实现这一目标。
谢谢
有人可以帮助我完成这项任务吗?我通过 unstack() 操作在多级数据帧中有数据:
Original df:
Density Length Range Count
15k 0.60 small 555
15k 0.60 big 17
15k 1.80 small 141
15k 1.80 big 21
15k 3.60 small 150
15k 3.60 big 26
20k 0.60 small 5543
20k 0.60 big 22
20k 1.80 small 553
20k 1.80 big 25
20k 3.60 small 422
20k 3.60 big 35
df = df.set_index(['Density','Length','Range']).unstack('Range')
# After unstack:
Count
Range big small
Density Length
15k 0.60 17 555
1.80 21 141
3.60 26 150
20k …Run Code Online (Sandbox Code Playgroud) python ×8
seaborn ×5
matplotlib ×4
pandas ×2
cumsum ×1
dataframe ×1
function ×1
indexing ×1
kwargs ×1
label ×1
legend ×1
margin ×1
marker ×1
multi-level ×1
page-title ×1