我尝试安装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环境:
我以前成功安装了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) 我试图绘制两个显示击球和保龄球计数的计票图.我尝试了以下代码:
l=['batting_team','bowling_team']
for i in l:
sns.countplot(high_scores[i])
mlt.show()
Run Code Online (Sandbox Code Playgroud)
但通过使用这个,我得到两个一个在另一个下面的情节.我如何让他们并排订购?
假设我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,C和D使用时间序列可视化功能中seaborn,使我得到这些方针的东西:

我该如何处理这个问题?根据我在这款笔记本上看到的内容,电话应该是:
sns.tsplot(df, time="time", unit="unit", condition="condition", value="value")
Run Code Online (Sandbox Code Playgroud)
但这似乎需要数据框被以不同的方式来表示,用某种方式编码列time, …
在子图中绘制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中使用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) 在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) 我是回归游戏的新手,希望为满足特定条件的数据子集绘制功能上任意的非线性回归线(加上置信度和预测区间)(即平均重复值超过阈值;见下文).
的data是为独立变量产生x跨越20点不同的值:x=(20-np.arange(20))**2与rep_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)
我的目标是仅为那些复制均值> …
我有以下数据框。
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) 我正在使用提示数据集,这是数据集的头部。
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) 我的数据如下:
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 ×10
seaborn ×10
matplotlib ×7
pandas ×5
bar-chart ×1
bokeh ×1
conda ×1
heatmap ×1
install ×1
ipython ×1
package ×1
performance ×1
regression ×1
statistics ×1
waffle-chart ×1