标签: seaborn

错误:'conda'只能安装到根环境中

我尝试安装python包seaborn时收到以下错误:

conda install --name dato-env seaborn
Error: 'conda' can only be installed into the root environment
Run Code Online (Sandbox Code Playgroud)

当然,这很令人费解,因为我不想安装conda.我正在尝试安装seaborn.

这是我的设置.我有3个python环境:

  • 拿督-ENV
  • py35

我以前成功安装了seaborn(使用命令conda install seaborn),但是它安装在root环境中(并且我的iPython笔记本无法使用dato-env).

我试图在dato-env环境中安装seaborn,以便它可以用于我的iPython笔记本代码,但我不断收到上述错误,说我必须在root环境中安装conda.(conda安装在根环境中)

如何成功将seaborn安装到我的dato-env中?

在此先感谢您的任何帮助.

编辑:

> conda --version
conda 4.0.5
> conda env list
dato-env              *  /Users/*******/anaconda/envs/dato-env
py35                     /Users/*******/anaconda/envs/py35
root                     /Users/*******/anaconda
Run Code Online (Sandbox Code Playgroud)

python install package conda seaborn

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

如何在seaborn中并排绘制两个计数图?

我试图绘制两个显示击球和保龄球计数的计票图.我尝试了以下代码:

l=['batting_team','bowling_team']
for i in l:
    sns.countplot(high_scores[i])
    mlt.show()
Run Code Online (Sandbox Code Playgroud)

但通过使用这个,我得到两个一个在另一个下面的情节.我如何让他们并排订购?

python matplotlib pandas seaborn

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

用seaborn绘制时间序列数据

假设我Dataframe使用以下内容创建完全随机:

from pandas.util import testing
from random import randrange

def random_date(start, end):
    delta = end - start
    int_delta = (delta.days * 24 * 60 * 60) + delta.seconds
    random_second = randrange(int_delta)
    return start + timedelta(seconds=random_second)

def rand_dataframe():
  df = testing.makeDataFrame()
  df['date'] = [random_date(datetime.date(2014,3,18),datetime.date(2014,4,1)) for x in xrange(df.shape[0])]
  df.sort(columns=['date'], inplace=True)      
  return df

df = rand_dataframe()
Run Code Online (Sandbox Code Playgroud)

这导致数据框显示在本文的底部.我想我的阴谋列A,B,CD使用时间序列可视化功能中seaborn,使我得到这些方针的东西:

在此输入图像描述

我该如何处理这个问题?根据我在这款笔记本上看到的内容,电话应该是:

sns.tsplot(df, time="time", unit="unit", condition="condition", value="value")
Run Code Online (Sandbox Code Playgroud)

但这似乎需要数据框被以不同的方式来表示,用某种方式编码列time, …

python matplotlib pandas seaborn

15
推荐指数
1
解决办法
3万
查看次数

如何并排绘制2个seaborn lmplots?

在子图中绘制2个distplots或散点图很有效:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd
%matplotlib inline

# create df
x = np.linspace(0, 2 * np.pi, 400)
df = pd.DataFrame({'x': x, 'y': np.sin(x ** 2)})

# Two subplots
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(df.x, df.y)
ax1.set_title('Sharing Y axis')
ax2.scatter(df.x, df.y)

plt.show()
Run Code Online (Sandbox Code Playgroud)

子图示例

但是当我使用lmplot其他类型的图表而不是其他任何类型的图表时,我得到一个错误:

AttributeError:'AxesSubplot'对象没有属性'lmplot'

有没有办法将这些图表类型并排绘制?

python matplotlib ipython seaborn

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

自定义注释Seaborn Heatmap

我在Python中使用Seaborn来创建Heatmap.我能够使用传入的值来注释单元格,但是我想添加表示单元格意味着什么的注释.例如,0.000000我不想仅仅看到,而是希望看到相应的标签,例如"Foo"或0.000000 (Foo).

热图功能的Seaborn文档有点神秘,我相信参数是关键所在:

annot_kws : dict of key, value mappings, optional
  Keyword arguments for ax.text when annot is True.
Run Code Online (Sandbox Code Playgroud)

我尝试设置annot_kws值的别名字典,即{'Foo' : -0.231049060187, 'Bar' : 0.000000}等,但我得到一个AttributeError.

这是我的代码(我在这里手动创建了数据数组以实现可重现性):

data = np.array([[0.000000,0.000000],[-0.231049,0.000000],[-0.231049,0.000000]])
axs = sns.heatmap(data, vmin=-0.231049, vmax=0, annot=True, fmt='f', linewidths=0.25)
Run Code Online (Sandbox Code Playgroud)

当我不使用annot_kws参数时,这是(工作)输出:

工作输出

在这里,当我在堆栈跟踪包括annot_kwsPARAM:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-57-38f91f1bb4b8> in <module>()
     12 
     13 
---> 14 axs = sns.heatmap(data, vmin=min(uv), vmax=max(uv), annot=True, annot_kws=kws, linewidths=0.25)
     15 concepts

/opt/anaconda/2.3.0/lib/python2.7/site-packages/seaborn/matrix.pyc …
Run Code Online (Sandbox Code Playgroud)

python heatmap seaborn

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

如何在python中做华夫饼图?(方形饼图)

像这样的东西: 在此输入图像描述

在R中有一个非常好的包.在python中,我能想到的最好的就是这个,使用squarify包(灵感来自关于如何做树图的帖子):

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns # just to have better line color and width
import squarify
# for those using jupyter notebooks
%matplotlib inline 


df = pd.DataFrame({
                  'v1': np.ones(100), 
                  'v2': np.random.randint(1, 4, 100)})
df.sort_values(by='v2', inplace=True)

# color scale
cmap = mpl.cm.Accent
mini, maxi = df['v2'].min(), df['v2'].max()
norm = mpl.colors.Normalize(vmin=mini, vmax=maxi)
colors = [cmap(norm(value)) for value in df['v2']]

# …
Run Code Online (Sandbox Code Playgroud)

python matplotlib bokeh seaborn waffle-chart

15
推荐指数
2
解决办法
4567
查看次数

在Python中绘制回归线,置信区间和预测区间

我是回归游戏的新手,希望为满足特定条件的数据子集绘制功能上任意的非线性回归线(加上置信度和预测区间)(即平均重复值超过阈值;见下文).

data是为独立变量产生x跨越20点不同的值:x=(20-np.arange(20))**2rep_num=10重复为每个条件.数据显示出强烈的非线性x,如下所示:

import numpy as np

mu = [.40, .38, .39, .35, .37, .33, .34, .28, .11, .24,
      .03, .07, .01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]     

data = np.zeros((20, rep_num))
for i in range(13):
    data[i] = np.clip(np.random.normal(loc=mu[i], scale=0.1, size=rep_num), 0., 1.)
Run Code Online (Sandbox Code Playgroud)

我可以制作数据的散点图; 重复方式由红点显示:

import matplotlib.pyplot as plt

plt.scatter(np.log10(np.tile(x[:,None], rep_num)), data, 
            facecolors='none', edgecolors='k', alpha=0.25)
plt.plot(np.log10(x), data.mean(1), 'ro', alpha=0.8)
plt.plot(np.log10(x), np.repeat(0., 20), 'k--')
plt.xlim(-0.02, np.max(np.log10(x)) + 0.02)
plt.ylim(-0.01, 0.7)
Run Code Online (Sandbox Code Playgroud)

散点图

我的目标是仅为那些复制均值> …

python statistics regression matplotlib seaborn

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

Seaborn lineplot 高 cpu;与 matplotlib 相比非常慢

我有以下数据框。

In [12]: dfFinal
Out[12]: 
           module                                            vectime                                           vecvalue
1906  client1.tcp  [1.1007512, 1.1015024, 1.1022536, 1.1030048, 1...  [0.0007512, 0.0007512, 0.0007512, 0.0007512, 0...
1912  client2.tcp  [1.10079784, 1.10159568, 1.10239352, 1.1031913...  [0.00079784, 0.00079784, 0.00079784, 0.0007978...
1918  client3.tcp  [1.10084448, 1.10168896, 1.10258008, 1.1036111...  [0.00084448, 0.00084448, 0.00089112, 0.0010310...
Run Code Online (Sandbox Code Playgroud)

我想为每个模块绘制 timeSeries vecvaluevs。vectime

结果如下: 在此处输入图片说明

为此,我可以执行以下操作:

1) Matplotlib

start = datetime.datetime.now()

for row in dfFinal.itertuples():
    t = row.vectime
    x = row.vecvalue
    x = runningAvg(x)
    plot(t,x)

total = (datetime.datetime.now() - start).total_seconds()
print("Total time: ",total)
Run Code Online (Sandbox Code Playgroud)

这样做需要0.07005几秒钟才能完成。

2) 海生

start …
Run Code Online (Sandbox Code Playgroud)

python performance matplotlib pandas seaborn

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

Seaborn violinplot 中 HUE 参数的多列

我正在使用提示数据集,这是数据集的头部。


 total_bill tip     sex    smoker day time  size
0   16.99   1.01    Female  No  Sun Dinner  2
1   10.34   1.66    Male    No  Sun Dinner  3
2   21.01   3.50    Male    No  Sun Dinner  3
3   23.68   3.31    Male    No  Sun Dinner  2
4   24.59   3.61    Female  No  Sun Dinner  4
Run Code Online (Sandbox Code Playgroud)

我的代码是


 total_bill tip     sex    smoker day time  size
0   16.99   1.01    Female  No  Sun Dinner  2
1   10.34   1.66    Male    No  Sun Dinner  3
2   21.01   3.50    Male    No  Sun Dinner  3 …
Run Code Online (Sandbox Code Playgroud)

python visualization matplotlib pandas seaborn

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

如何改变seaborn中因子图的顺序

我的数据如下:

m=pd.DataFrame({'model':['1','1','2','2','13','13'],'rate':randn(6)},index=['0', '0','1','1','2','2'])
Run Code Online (Sandbox Code Playgroud)

我希望在[1,2,13]中排序因子图的x轴,但默认值为[1,13,2].

有谁知道如何改变它?

更新:我想我已经通过以下方式解决了这个问题,但也许有一种更好的方法可以使用索引来做到这一点?

sns.factorplot('model','rate',data=m,kind="bar",x_order=['1','2','13'])
Run Code Online (Sandbox Code Playgroud)

python bar-chart pandas seaborn

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