天道酬勤,学无止境

无法使用 seaborn.countplot(Unable to use seaborn.countplot)

问题

我正在尝试使用最新版本的 Pycharm 作为 Python IDE 绘制一些图形。 作为解释器,我将 Anaconda 与 Python 3.4.3-0 一起使用。 我已经使用conda install新闻版的 pandas (0.17.0), seaborn (0.6.0), numpy (1.10.1), matplotlib (1.4.3), ipython (4.0.1)

在 nesarc_pds.csv 我有这个:

IDNUM,S1Q2I
39191,1
39787,1
40082,1
40189,1
40226,1
40637,1
41306,1
41627,1
41710,1
42113,1
42120,1
42720,1
42909,1
43092,1
7,2
15,2
25,2
40,2
46,2
49,2
57,2
63,2
68,2
100,2
104,2
116,2
125,2
136,2
137,2
145,2
168,2
3787,9
6554,9
7616,9
11686,9
12431,9
14889,9
17694,9
19440,9
20141,9
21540,9
22476,9
24207,9
25762,9
29045,9
29731,9

所以,话虽如此,这是我的代码:

import pandas as pd
import numpy
import seaborn as snb
import matplotlib.pyplot as plt

data = pd.read_csv("nesarc_pds.csv", low_memory=False)

#converting variable to numeric
pd.to_numeric(data["S1Q2I"], errors='coerce')

#setting a new dataset...
sub1=data[(data["S1Q2I"]==1) & (data["S3BQ1A5"]==1)]
sub2 = sub1.copy()

#setting the missing data 9 = unknown into NaN
sub2["S1Q2I"] = sub2["S1Q2I"].replace(9, numpy.nan)

#setting date to categorical type
sub2["S1Q2I"] = sub2["S1Q2I"].astype('category')

#plotting

snb.countplot(x="S1Q2I", data=sub2)
plt.xlabel("blablabla")
plt.title("lalala")

然后......这是错误:

Traceback (most recent call last):
      File "C:/Users/LPForGE_1/PycharmProjects/guido/haha.py", line 49, in <module>
        snb.countplot(x="S1Q2I", data=sub2)
      File "C:\Anaconda3\lib\site-packages\seaborn\categorical.py", line 2544, in countplot
        errcolor)
      File "C:\Anaconda3\lib\site-packages\seaborn\categorical.py", line 1263, in __init__
        self.establish_colors(color, palette, saturation)
      File "C:\Anaconda3\lib\site-packages\seaborn\categorical.py", line 300, in establish_colors
        l = min(light_vals) * .6
    ValueError: min() arg is an empty sequence

任何帮助都会非常好。 我几乎耗尽了我的智慧,试图了解如何解决这个问题。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Unable to use seaborn.countplot
    I'm trying to plot some graphs using the latest version of Pycharm as a Python IDE. As an interpreter, I'm using Anaconda with Python 3.4.3-0. I have installed using conda install the news version of pandas (0.17.0), seaborn (0.6.0), numpy (1.10.1), matplotlib (1.4.3), ipython (4.0.1) Inside the nesarc_pds.csv I have this: IDNUM,S1Q2I 39191,1 39787,1 40082,1 40189,1 40226,1 40637,1 41306,1 41627,1 41710,1 42113,1 42120,1 42720,1 42909,1 43092,1 7,2 15,2 25,2 40,2 46,2 49,2 57,2 63,2 68,2 100,2 104,2 116,2 125,2 136,2 137,2 145,2 168,2 3787,9 6554,9 7616,9 11686,9 12431,9 14889,9 17694,9 19440
  • Seaborn:带有频率的countplot()(Seaborn: countplot() with frequencies)
    问题 我有一个带有名为“ AXLES”的列的Pandas DataFrame,它可以采用3到12之间的整数值。 我正在尝试使用Seaborn的countplot()选项来实现以下绘图: y轴左侧显示了这些值在数据中出现的频率。 轴延伸为[0%-100%],每10%会打勾。 右y轴显示实际计数,值对应于由左y轴确定的刻度线(每10%标记一次)。 x轴显示条形图的类别[3、4、5、6、7、8、9、10、11、12]。 条形顶部的注释显示该类别的实际百分比。 以下代码为我提供了下面的图表,其中包含实际计数,但是我找不到将它们转换为频率的方法。 我可以使用df.AXLES.value_counts()/len(df.index)来获取频率,但是我不确定如何将此信息插入Seaborn的countplot() 。 我也找到了注释的解决方法,但是我不确定这是否是最佳实现。 任何帮助,将不胜感激! 谢谢 plt.figure(figsize=(12,8)) ax = sns.countplot(x="AXLES", data=dfWIM, order=[3,4,5,6,7,8,9,10,11,12]) plt.title('Distribution of Truck Configurations') plt.xlabel('Number of Axles') plt.ylabel(
  • 限制seaborn countplot中显示的组数?(limit the number of groups shown in seaborn countplot?)
    问题 是否可以在sns.countplot()仅显示顶部/底部n组? 使用来自 seaborn 网站的示例, sns.countplot(y="deck", hue="class", data=titanic, palette="Greens_d"); 是否有任何简单(甚至相对简单)的方法可以将此图限制为仅 3 个甲板(组)而不是显示所有 7 个,或者这是否可以使用sns.bargraph或仅使用简单的 matplotlib 更好地完成? 回答1 import seaborn as sns titanic = sns.load_dataset("titanic") sns.countplot(y="deck", hue="class", data=titanic, palette="Greens_d", order=titanic.deck.value_counts().iloc[:3].index) 回答2 只需添加真实示例而不是玩具数据集。 假设您有 Pandas 数据框名称 training_var 并且您想要显示前 10 个 'Gene' 列计数 'order=' bit 应如下所示: sb.countplot(x='Gene',data=training_var,order=pd.value_counts(training_var['Gene']).iloc[:10]
  • Seaborn: countplot() with frequencies
    I have a Pandas DataFrame with a column called "AXLES", which can take an integer value between 3-12. I am trying to use Seaborn's countplot() option to achieve the following plot: left y axis shows the frequencies of these values occurring in the data. The axis extends are [0%-100%], tick marks at every 10%. right y axis shows the actual counts, values correspond to tick marks determined by the left y axis (marked at every 10%.) x axis shows the categories for the bar plots [3, 4, 5, 6, 7, 8, 9, 10, 11, 12]. Annotation on top of the bars show the actual percentage of that category. The
  • How to normalize a seaborn countplot with multiple categorical variables
    I have created a seaborn countplot for multiple categorical variables of a dataframe but instead of count I want to have percentages? What is the best option to use? Barplots? Can I use a query like the below one to get the barplots at once? for i, col in enumerate(df_categorical.columns): plt.figure(i) sns.countplot(x=col,hue='Response',data=df_categorical) this query gives me the countplot for all variables at once Thanks! Data looks like this: State Response Coverage Education Effective To Date EmploymentStatus Gender Location Code Marital Status Policy Type Policy Renew Offer Type Sales
  • Seaborn.countplot : order categories by count?
    I know that seaborn.countplot has the attribute order which can be set to determine the order of the categories. But what I would like to do is have the categories be in order of descending count. I know that I can accomplish this by computing the count manually (using a groupby operation on the original dataframe, etc.) but I am wondering if this functionality exists with seaborn.countplot. Surprisingly, I cannot find an answer to this question anywhere.
  • how to add data Labels to seaborn countplot / factorplot
    I use python3, seaborn countplot, my question : how to add the count values for every bar? Show the label at the top of each bar? how to have these bars in descending order? I wrote this: fig = plt.figure(figsize=(10,6)) sns.countplot(data_new['district'],data=data_new) plt.show() Thanks a lot !
  • limit the number of groups shown in seaborn countplot?
    Is it possible to show only the top/bottom n groups in asns.countplot()? Using an example from the seaborn website, sns.countplot(y="deck", hue="class", data=titanic, palette="Greens_d"); Is there any easy (or even relatively straightforward) way of limiting this plot to just 3 decks (groups) instead of displaying all 7 or is this something that would be better accomplished with an sns.bargraph or just plain matplotlib?
  • How to get values above the bars on a seaborn countplot grouped using "melt"
    I have a seaborn count plot, but instead of colour bars I need the value above each bar. My input is pandas data frame. ax = sns.countplot(x="variable", hue="value", data=pd.melt(dfs)) here dfs has many entries for different columns. For example, here "man" above the blue bar, "woman" above the brown bar and "child" above the green bar instead of the colour description.
  • Seaborn countplot set legend for x values
    I'm ploting a categorical data and value count by sns.countplot() I'm trying to add legend for x-values to the figure as following: handles is set of x-value, labels is the descriptions of x-values. ax = sns.countplot(x = df.GARAGE_DOM) handles, labels = ax.get_legend_handles_labels() handles = ["VP", "BC", "GC", "GP", "JC", "PO"] labels = ["Voie Publique", "box", "Garage couvert", "garage particulier clos", "Jardin clos", "parking ouvert"] by_label = OrderedDict(zip(handles,labels)) ax.legend(by_label.keys(), by_label.values()) However, I got warning that UserWarning: Legend does not support
  • 如何用seaborn拟合泊松分布?(How to fit a poisson distribution with seaborn?)
    问题 我尝试将我的数据拟合为泊松分布: import seaborn as sns import scipy.stats as stats sns.distplot(x, kde = False, fit = stats.poisson) 但我收到此错误: AttributeError: 'poisson_gen' 对象没有属性 'fit' 其他分布(伽马等)运行良好。 回答1 Poisson 分布(在 scipy 中实现为 scipy.stats.poisson)是一个离散分布。 scipy 中的离散分布没有fit方法。 我对 seaborn.distplot 函数不是很熟悉,但它似乎假设数据来自连续分布。 如果是这种情况,那么即使scipy.stats.poisson有一个fit方法,传递给distplot也不是一个合适的分布。 问题标题是“如何用 seaborn 拟合泊松分布?”,所以为了完整起见,这里有一种获取数据图及其拟合的方法。 seaborn仅用于条形图,使用@mwaskom 的建议使用seaborn.countplot 。 拟合实际上是微不足道的,因为泊松分布的最大似然估计只是数据的均值。 一、进口: In [136]: import numpy as np In [137]: from scipy.stats import poisson In [138]
  • Seaborn countplot with normalized y axis per group
    I was wondering if it is possible to create a Seaborn count plot, but instead of actual counts on the y-axis, show the relative frequency (percentage) within its group (as specified with the hue parameter). I sort of fixed this with the following approach, but I can't imagine this is the easiest approach: # Plot percentage of occupation per income class grouped = df.groupby(['income'], sort=False) occupation_counts = grouped['occupation'].value_counts(normalize=True, sort=False) occupation_data = [ {'occupation': occupation, 'income': income, 'percentage': percentage*100} for (income
  • 每组的y轴归一化的Seaborn计数图(Seaborn countplot with normalized y axis per group)
    问题 我想知道是否可以创建一个Seaborn计数图,但是要显示其组内的相对频率(百分比),而不是y轴上的实际计数(由hue参数指定)。 我使用以下方法来解决此问题,但我无法想象这是最简单的方法: # Plot percentage of occupation per income class grouped = df.groupby(['income'], sort=False) occupation_counts = grouped['occupation'].value_counts(normalize=True, sort=False) occupation_data = [ {'occupation': occupation, 'income': income, 'percentage': percentage*100} for (income, occupation), percentage in dict(occupation_counts).items() ] df_occupation = pd.DataFrame(occupation_data) p = sns.barplot(x="occupation", y="percentage", hue="income", data=df_occupation) _ = plt.setp(p.get
  • 如何用渐变填充matplotlib条?(How to fill matplotlib bars with a gradient?)
    问题 我会非常有兴趣以完全像这里所做的那样用不同的渐变填充barplot的matplotlib / seaborn条(据我所知,不是用matplotlib填充): 我还检查了此相关主题Pyplot:曲线下的垂直渐变填充? 这只能通过gr-framework实现吗?还是有其他替代策略? 回答1 就像在Pyplot中描绘的那样:曲线下的垂直渐变填充? 可以使用图像创建梯度图。 由于条形图是矩形的,因此可以将图像的范围直接设置为条形图的位置和大小。 可以在所有条形图上循环并在相应位置创建图像。 结果是一个梯度条形图。 import numpy as np import matplotlib.pyplot as plt fig, ax = plt.subplots() bar = ax.bar([1,2,3,4,5,6],[4,5,6,3,7,5]) def gradientbars(bars): grad = np.atleast_2d(np.linspace(0,1,256)).T ax = bars[0].axes lim = ax.get_xlim()+ax.get_ylim() for bar in bars: bar.set_zorder(1) bar.set_facecolor("none") x,y = bar.get_xy() w, h = bar.get_width()
  • ApacheCN 翻译/校对/笔记整理活动进度公告 2019.9.6
    注意 请贡献者查看参与方式,然后直接在 ISSUE 中认领。翻译/校对三个文档就可以申请当负责人,我们会把你拉进合伙人群。翻译/校对五个文档的贡献者,可以申请实习证明。请私聊片刻(529815144)、咸鱼(1034616238)、或飞龙(562826179)来领取以上奖励。 翻译校对活动 百页机器学习小书【翻译】 参与方式:https://github.com/apachecn/ml-book-100-zh/blob/master/CONTRIBUTING.md 整体进度:https://github.com/apachecn/ml-book-100-zh/issues/1 项目仓库:https://github.com/apachecn/ml-book-100-zh 认领:11/12,翻译:7/12 章节贡献者进度零、前言@PEGASUS1993100%一、介绍@PEGASUS1993二、符号和定义@PEGASUS1993三、基本算法四、线性算法剖析@P3n9W31100%五、基本实践@chengchengbai六、神经网络和深度学习@Everfighting七、问题和答案@LaicZhang100%八、高级实践@LaicZhang100%九、无监督学习@onlyonewater100%十、其它学习形式@kjlintong100%十一、总结@kjlintong100%
  • ApacheCN 活动汇总 2019.8.23
    公告 欢迎大家在我们平台上投放广告。如果你希望在我们的专栏、文档或邮件中投放广告,请准备好各种尺寸的图片和专属链接,联系咸鱼(1034616238)。我们组织了一个开源互助平台,方便开源组织和大 V 互相认识,互相帮助,整合资源。请回复这个帖子并注明组织/个人信息来申请加入。请回复这个帖子来推荐希望翻译的内容。如果大家遇到了做得不错的教程或翻译项目,也可以推荐给我们。我们会联系项目的维护者,一起把它变得更好。我们的各个公众平台接受人工智能、环材化生劝退、CS 留学申请、IT 外企求职的投稿,详情请见这里,我们会每日从所有投稿博文中精选两篇,在 ApacheCN 全平台推送。为了能够将开源事业做大做强,ApacheCN 需要与公益基金会(IT、教育类)合作,欢迎大家提供帮助。同时我们也接受社会各界的捐助。如果你不希望再收到我们的邮件,请直接拉黑我们,不要浪费彼此的时间,谢谢合作。ByteInAI 是我们和 Datawhale、AI 有道、黄海广博士等组织或个人联合推出的 AI 垂直自媒体,是一个纯商业项目。如果你有意向投资这个项目,请联系 Datawhale 或咸鱼(1034616238)。 组织任务 认领须知: 请私聊片刻(529815144)、咸鱼(1034616238)、或飞龙(562826179)来认领任务,我们会把你拉进合伙人群。现有翻译项目(t.cn/AijId2zY
  • ApacheCN 活动汇总 2019.8.30
    公告 欢迎大家在我们平台上投放广告。如果你希望在我们的专栏、文档或邮件中投放广告,请准备好各种尺寸的图片和专属链接,联系咸鱼(1034616238)。我们组织了一个开源互助平台,方便开源组织和大 V 互相认识,互相帮助,整合资源。请回复这个帖子并注明组织/个人信息来申请加入。请回复这个帖子来推荐希望翻译的内容。如果大家遇到了做得不错的教程或翻译项目,也可以推荐给我们。我们会联系项目的维护者,一起把它变得更好。我们的各个公众平台接受人工智能、环材化生劝退、CS 留学申请、IT 外企求职的投稿,详情请见这里,我们会每日从所有投稿博文中精选两篇,在 ApacheCN 全平台推送。为了能够将开源事业做大做强,ApacheCN 需要与公益基金会(IT、教育类)合作,欢迎大家提供帮助。同时我们也接受社会各界的捐助。如果你不希望再收到我们的邮件,请直接拉黑我们,不要浪费彼此的时间,谢谢合作。ByteInAI 是我们和 Datawhale、AI 有道、黄海广博士等组织或个人联合推出的 AI 垂直自媒体,是一个纯商业项目。如果你有意向投资这个项目,请联系 Datawhale 或咸鱼(1034616238)。 组织任务 认领须知: 请私聊片刻(529815144)、咸鱼(1034616238)、或飞龙(562826179)来认领任务,我们会把你拉进合伙人群。现有翻译项目(t.cn/AijId2zY
  • 无法创建调试桥:无法启动ADB服务器:无法获取“ adb版本”的结果(Unable to create Debug Bridge: Unable to start adb server: Unable to obtain result of 'adb version')
    问题 我正在Windows 10 64位上运行Android Studio。 我在5/20上午升级到了最新版本和SDK,此后,在打开Android Studio时收到上述错误。 我还在事件日志中得到“无法获得'adb版本”的结果。 如果我启动该应用程序(在更新之前运行良好),将显示“选择部署目标”窗口,其中显示“正在初始化ADB”和加载图形几秒钟,然后显示“无显示”消息。 以前,我设置了4个不同的仿真器,并通过USB连接了一个活动设备。 现在...什么都没有。 创建新的仿真器没有任何效果-我逐步执行了步骤,但仍然看到“无显示”消息。 我尝试了以下方法: 还原到较旧的平台工具删除并重新安装最新的平台工具完全删除并重新安装Android Studio 安装了Genymotion来尝试进行仿真(我可以在Genymotion中创建并启动仿真器,这与AS中的上述问题没有什么不同) 通过任务管理器杀死adb.exe,然后通过终端运行adb tcpip 5555,输出为: 守护程序未运行。 现在在端口5037上启动它* 守护程序已成功启动*在TCP模式下重新启动端口:5555 这令人鼓舞,但上述相同问题仍然存在(即使在重新启动AS之后)。 切换到USB模式,并通过终端中的adb返回TCPIP,不走运。 将整个项目迁移到Eclipse,直到遇到与Google Play服务有关的支持问题为止(因此
  • 无法使用Selenium和Java 11导入org.openqa.selenium.WebDriver(Unable to import org.openqa.selenium.WebDriver using Selenium and Java 11)
    问题 我是Selenium Webdriver和Java编程的新手。 尝试解决eclipse 2018-12中的错误“无法解决导入org.openqa.selenium.WebDriver”,我使用Java 11,Selenium独立服务器3.141.59。 请帮助。 我无法导入jar文件,下面是屏幕截图 回答1 根据无法以selenium-java作为依赖项编译Java9模块,由于分离的软件包,似乎Selenium软件包无法用Java 9进行编译,直到2018年5月15日, Selenium才与Java 9完全不兼容。 但是按照@ Jarob22的评论,Selenium使用Java 10可以正常工作。 Java 9已经很流行了,如果10可以正常工作,那么添加额外的东西尝试并支持它就没有多大意义了。 但是随着e57914a的登陆,Simon向我们介绍了基本的JPMS支持。 有了这个可用性(mhomnag / selenium-java10-reproducer @ bc63889),现在实际上可以构建了,但是您可能必须删除WebDriverWaiter并暂时保持睡眠状态。 Java 11 当您使用java.version:'11 .0.1'时, selenium-server-standalone-3.141.59.jar仍与Java 11不兼容。 但是一旦Java
  • 使用 Oltu 传递给 OAuthTokenRequest 时,无法使用 ,@Context HttpServletRequest 检索发布数据(Unable to retrieve post data using ,@Context HttpServletRequest when passed to OAuthTokenRequest using Oltu)
    问题 我正在将 Oltu 用于 Oauth2。 使用@Context HttpServletRequest 请求时,我无法检索发布数据 当我使用 @FormParam 时,我能够检索发布数据。 将请求传递给 OAuthTokenRequest OAuthTokenRequest oauthRequest = new OAuthTokenRequest(request); 我收到以下错误 {"error":"invalid_request","error_description":"缺少 grant_type 参数值"} 在 oltu OAuthTokenRequest 类上调试时,以下代码用于检索参数值 public String getParam(String name) { return this.request.getParameter(name); // from request it is unable to get post data.As i am getting request object using @Context HttpServletRequest request . } 据说使用@Context HttpServletRequest 请求是不可能获得使用@Context HttpServletRequest 请求的post数据所以,我的问题是 如何使用