我确定我忘记了一些非常简单的事情,但我无法获得与Seaborn合作的某些情节.
如果我做:
import seaborn as sns
Run Code Online (Sandbox Code Playgroud)
然后我像matplotlib一样创建的任何绘图都获得了Seaborn样式(背景中的灰色网格).
但是,如果我尝试做其中一个示例,例如:
In [1]: import seaborn as sns
In [2]: sns.set()
In [3]: df = sns.load_dataset('iris')
In [4]: sns.pairplot(df, hue='species', size=2.5)
Out[4]: <seaborn.axisgrid.PairGrid at 0x3e59150>
Run Code Online (Sandbox Code Playgroud)
pairplot函数返回一个PairGrid对象,但该图不显示.
我有点困惑,因为matplotlib似乎运行正常,Seaborn样式应用于其他matplotlib图,但Seaborn函数似乎没有做任何事情.有没有人知道可能是什么问题?
我已将以下CSV文件输入iPython Notebook:
public = pd.read_csv("categories.csv")
public
Run Code Online (Sandbox Code Playgroud)
我还将pandas导入为pd,将numpy导入为np,将matplotlib.pyplot导入为plt.存在以下数据类型(以下是摘要 - 大约有100列)
In [36]: public.dtypes
Out[37]: parks object
playgrounds object
sports object
roading object
resident int64
children int64
Run Code Online (Sandbox Code Playgroud)
我希望将"公园","游乐场","体育"和"漫游"更改为类别(他们在其中有类似的比例反应 - 每列都有不同类型的喜欢的回应(例如,一个人"非常同意","同意"等等,另一个具有"非常重要","重要"等等,其余部分为int64.
我能够创建一个单独的数据框 - public1 - 并使用以下代码将其中一列更改为类别类型:
public1 = {'parks': public.parks}
public1 = public1['parks'].astype('category')
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用此代码一次更改数字时,我没有成功:
public1 = {'parks': public.parks,
'playgrounds': public.parks}
public1 = public1['parks', 'playgrounds'].astype('category')
Run Code Online (Sandbox Code Playgroud)
尽管如此,我不想仅使用类别列创建单独的数据框.我想在原始数据框中更改它们.
我尝试了很多方法来实现这一点,然后在这里尝试了代码:Pandas:更改列的数据类型 ...
public[['parks', 'playgrounds', 'sports', 'roading']] = public[['parks', 'playgrounds', 'sports', 'roading']].astype('category')
Run Code Online (Sandbox Code Playgroud)
并得到以下错误:
NotImplementedError: > 1 ndim Categorical are not supported at this time
Run Code Online (Sandbox Code Playgroud)
有没有办法改变"公园","游乐场","体育","漫步"到类别(这样可以分析比特率的反应),留下"常驻"和"儿童"(以及94个其他列是字符串,int +浮动)请原谅?或者,有更好的方法吗?如果有人有任何建议和/或反馈我会非常感激....我慢慢地去秃头撕开我的头发!
提前谢谢了.
编辑添加 …
我试图使用以下代码将seaborn导入python(使用2.7):
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
import math as math
from pylab import rcParams
%matplotlib inline
Run Code Online (Sandbox Code Playgroud)
并收到以下错误消息:
ImportError Traceback (most recent call last)
<ipython-input-62-bd3d27f3b137> in <module>()
1 import matplotlib.pyplot as plt
----> 2 import seaborn as sns
3 import pandas as pd
4 import numpy as np
5 import math as math
C:\Python27\lib\site-packages\seaborn\__init__.py in <module>()
2 from .utils import *
3 from .palettes import *
----> 4 from .linearmodels …
Run Code Online (Sandbox Code Playgroud) 是否有matplotlib或seaborn图我可以使用g.map_lower或g.map_upper来获取每个双变量图的相关系数,如下所示?手动映射plt.text以获取下面的示例,这是一个繁琐的过程.
这是我努力绘制一个双网格图,使用下部的kdeplot和2个色调:
我的脚本是:
import seaborn as sns
g = sns.PairGrid(df2,hue='models')
g.map_upper(plt.scatter)
g.map_lower(sns.kdeplot)
g.map_diag(sns.distplot)
Run Code Online (Sandbox Code Playgroud)
在seaborn 0.6.0中是否有办法根据色调在map_lower的kdeplot中使用更多的色阶?
在这种情况下,hue只有2个值.也许我错过了一些明显的东西.
我在seaborn制作条形图,我想在每个子图中添加一些文字.我知道如何向整个图形添加文本,但我想访问每个子图并添加文本.我正在使用此代码:
import seaborn as sns
import pandas as pd
sns.set_style("whitegrid")
col_order=['Deltaic Plains','Hummock and Swale', 'Sand Dunes']
g = sns.FacetGrid(final, col="Landform", col_wrap=3,despine=False, sharex=False,col_order=col_order)
g = g.map(sns.barplot, 'Feature', 'Importance')
[plt.setp(ax.get_xticklabels(), rotation=45) for ax in g.axes.flat]
for ax, title in zip(g.axes.flat, col_order):
ax.set_title(title)
g.fig.text(0.85, 0.85,'Text Here', fontsize=9) #add text
Run Code Online (Sandbox Code Playgroud)
我正在使用样式器格式化pandas数据框以突出显示列和格式数字.我还想应用多索引更清晰,愉快和易读.由于我将Styler应用于列的子集,因此无法使用多索引.
例:
arrays = [np.hstack([['One']*2, ['Two']*2]) , ['A', 'B', 'C', 'D']]
columns = pd.MultiIndex.from_arrays(arrays)
data = pd.DataFrame(np.random.randn(5, 4), columns=list('ABCD'))
data.columns = columns
import seaborn as sns
cm = sns.light_palette("green", as_cmap=True)
data.style.background_gradient(cmap=cm, subset=['A'])
Run Code Online (Sandbox Code Playgroud)
有没有办法对列进行子集,以便样式器可以工作.根据以下来源,这是实现的,但没有例子,所以我很难理解如何应用它:http : //pandas.pydata.org/pandas-docs/stable/generated/pandas.formats.style. Styler.html https://github.com/pandas-dev/pandas/issues/11655
谢谢 !
我有以下pandas数据框,包含50,000个唯一行和20列(包含相关列的片段):
df1:
PRODUCT_ID PRODUCT_DESCRIPTION
0 165985858958 "Fish Burger with Lettuce"
1 185965653252 "Chicken Salad with Dressing"
2 165958565556 "Pork and Honey Rissoles"
3 655262522233 "Cheese, Ham and Tomato Sandwich"
4 857485966653 "Coleslaw with Yoghurt Dressing"
5 524156285551 "Lemon and Raspberry Cheesecake"
Run Code Online (Sandbox Code Playgroud)
我还有以下数据框(我也以字典形式保存),它有2列和20,000个唯一行:
df2(也保存为dict_2)
PROD_ID PROD_DESCRIPTION
0 548576 "Fish Burger"
1 156956 "Chckn Salad w/Ranch Dressing"
2 257848 "Rissoles - Lamb & Rosemary"
3 298770 "Lemn C-cake"
4 651452 "Potato Salad with Bacon"
5 100256 "Cheese Cake - Lemon Raspberry …
Run Code Online (Sandbox Code Playgroud) 我最近发现了seaborn,发现有很多可能的风格组合。目前,我只是使用默认的 Seaborn 配置,以改进 matplotlib 风格来绘制数据(基本上是点系列或函数图,而不是真正的统计数据)。
感谢Prettyplotlib我发现了 Seaborn 。
有没有人已经考虑过一个“安全”主题,它可以很好地渲染绘图功能,并旨在为色盲人士或黑白打印提供良好的渲染?
谢谢
编辑:我目前正在体验“hls”和“Set2”调色板。后者似乎对色盲有好处,但我认为黑白渲染效果很差。=(
python ×9
seaborn ×6
pandas ×4
python-2.7 ×2
categories ×1
fuzzywuzzy ×1
matplotlib ×1
multi-index ×1
numpy ×1
plot ×1
styles ×1
subset ×1