【问题标题】:Create color legend in scatter plot python matplotlib [duplicate]在散点图中创建颜色图例 python matplotlib [重复]
【发布时间】:2018-07-10 19:13:48
【问题描述】:

我正在尝试使用以下代码:

color= ['red' if House =="20" "blue" elif House =="21" "yellow" elif House =="22" else 'green' for H in House]

它给出了以下错误: SyntaxError: 无效语法

有什么建议吗?

【问题讨论】:

  • 这是什么语法?你在哪里找到的?

标签: python matplotlib


【解决方案1】:

elif 不能用于列表理解。应该是else <value> if <condition>。应用到您的代码:

color= ['red' if H=="20" else "blue" if H =="21" else "yellow" if H =="22" else 'green' for H in House]

请注意,您正在迭代 H,而不是 House

更新:

一般语法如下:

[<value> if <condition> else <value> if <condition> else <value>]

这可以分为三个部分:

  1. &lt;value&gt; if &lt;condition&gt;

    这对应于if &lt;condition&gt;: &lt;value&gt;

  2. else &lt;value&gt; if &lt;condition&gt;

    这对应于elif &lt;condition&gt;: &lt;value&gt;

  3. else &lt;value&gt;

    这对应于else: &lt;value&gt;

【讨论】:

  • 当你提到 else if 但你所做的是 if else
  • @AyemunHossainAshik 在使用elif 语句之前,您当然需要if 语句。我已经更新了答案,希望能更清楚。
  • 我说的是代码上面的那一行。更正那个。
  • @AyemunHossainAshik 我不确定我是否理解你想说的。代码上面的那行说如果你想在列表理解中使用elif,它应该写成else &lt;value&gt; if &lt;condition&gt;。就像在代码中一样,更新中对此进行了更多说明。
【解决方案2】:

如果你使用字典会更容易阅读:

colour_map = {
    '20': 'red',
    '21': 'blue',
    '22': 'yellow',
}

color= ['green' if H not in colour_map.keys() else colour_map[H] for H in House]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2014-09-10
    • 2011-02-24
    • 2020-12-30
    • 1970-01-01
    相关资源
    最近更新 更多