• <tfoot id='dT6v3'></tfoot>
  • <small id='dT6v3'></small><noframes id='dT6v3'>

    <i id='dT6v3'><tr id='dT6v3'><dt id='dT6v3'><q id='dT6v3'><span id='dT6v3'><b id='dT6v3'><form id='dT6v3'><ins id='dT6v3'></ins><ul id='dT6v3'></ul><sub id='dT6v3'></sub></form><legend id='dT6v3'></legend><bdo id='dT6v3'><pre id='dT6v3'><center id='dT6v3'></center></pre></bdo></b><th id='dT6v3'></th></span></q></dt></tr></i><div id='dT6v3'><tfoot id='dT6v3'></tfoot><dl id='dT6v3'><fieldset id='dT6v3'></fieldset></dl></div>

      <bdo id='dT6v3'></bdo><ul id='dT6v3'></ul>

        <legend id='dT6v3'><style id='dT6v3'><dir id='dT6v3'><q id='dT6v3'></q></dir></style></legend>
      1. 海运-根据色调名称更改条形图颜色

        时间:2024-08-21

              <tbody id='tCbVP'></tbody>
            <i id='tCbVP'><tr id='tCbVP'><dt id='tCbVP'><q id='tCbVP'><span id='tCbVP'><b id='tCbVP'><form id='tCbVP'><ins id='tCbVP'></ins><ul id='tCbVP'></ul><sub id='tCbVP'></sub></form><legend id='tCbVP'></legend><bdo id='tCbVP'><pre id='tCbVP'><center id='tCbVP'></center></pre></bdo></b><th id='tCbVP'></th></span></q></dt></tr></i><div id='tCbVP'><tfoot id='tCbVP'></tfoot><dl id='tCbVP'><fieldset id='tCbVP'></fieldset></dl></div>
            <tfoot id='tCbVP'></tfoot>

              <legend id='tCbVP'><style id='tCbVP'><dir id='tCbVP'><q id='tCbVP'></q></dir></style></legend>
                <bdo id='tCbVP'></bdo><ul id='tCbVP'></ul>

              • <small id='tCbVP'></small><noframes id='tCbVP'>

                1. 本文介绍了海运-根据色调名称更改条形图颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我使用seabornpandas从不同(但相关)的数据创建一些条形图。这两个数据集共享一个用作hue的公共类别,因此,我希望确保这两个图表中此类别的条形图颜色匹配。我该怎么做呢?

                  基本示例如下:

                  import seaborn as sns
                  import pandas as pd
                  import matplotlib.pyplot as plt
                  sns.set_style('darkgrid')
                  fig, ax = plt.subplots()
                  
                  a = pd.DataFrame({'Program': ['A', 'A', 'B', 'B', 'Total', 'Total'],
                                    'Scenario': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
                                    'Duration': [4, 3, 5, 4, 9, 7]})
                  
                  g = sns.barplot(data=a, x='Scenario', y='Duration',
                                  hue='Program', ci=None)
                  plt.tight_layout()
                  plt.savefig('3 progs.png')
                  
                  plt.clf()
                  
                  b = pd.DataFrame({'Program': ['A', 'A', 'B', 'B', 'C', 'C', 'Total', 'Total'],
                                    'Scenario': ['X', 'Y', 'X', 'Y', 'X', 'Y', 'X', 'Y'],
                                    'Duration': [4, 3, 5, 4, 3, 2, 12, 9]})
                  
                  g = sns.barplot(data=b, x='Scenario', y='Duration',
                                  hue='Program', ci=None)
                  plt.tight_layout()
                  plt.savefig('4 progs.png')
                  

                  生成两个图表:

                  在此示例中,我希望确保Total类别在两个图表中使用相同的颜色(例如黑色)

                  推荐答案

                  A.使用颜色列表

                  要确保两个绘图中相同类别的颜色相同,最简单的解决方案是在创建绘图时手动指定颜色。

                  # First bar plot
                  ax = sns.barplot(data=a, x='Scenario', y='Duration',
                                   hue='Program', ci=None, palette=["C0", "C1", "k"])
                  
                  # ...
                  # Second bar plot
                  ax2 = sns.barplot(data=b, x='Scenario', y='Duration',
                                    hue='Program', ci=None, palette=["C0", "C1", "C2", "k"])
                  

                  颜色"C2"(颜色周期的第三种颜色)仅出现在存在程序C的第二个绘图中。

                  B.使用词典

                  您也可以使用字典代替列表,将hue列中的值映射到颜色。

                  palette ={"A": "C0", "B": "C1", "C": "C2", "Total": "k"}
                  
                  ax = sns.barplot(data=a, x='Scenario', y='Duration', hue='Program', palette=palette)
                  # ...
                  ax2 = sns.barplot(data=b, x='Scenario', y='Duration', hue='Program', palette=palette)
                  

                  在这两种情况下,输出将如下所示:

                  C.自动词典

                  最后,您可以根据hue列中的值自动创建此字典。这样做的好处是,您既不需要事先知道各个数据帧中的颜色,也不需要知道它们的值。

                  import seaborn as sns
                  import pandas as pd
                  import matplotlib.pyplot as plt
                  sns.set_style('darkgrid')
                  fig, ax = plt.subplots()
                  
                  a = pd.DataFrame({'Program': ['A', 'A', 'B', 'B', 'Total', 'Total'],
                                    'Scenario': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
                                    'Duration': [4, 3, 5, 4, 9, 7]})
                  b = pd.DataFrame({'Program': ['A', 'A', 'B', 'B', 'C', 'C', 'Total', 'Total'],
                                    'Scenario': ['X', 'Y', 'X', 'Y', 'X', 'Y', 'X', 'Y'],
                                    'Duration': [4, 3, 5, 4, 3, 2, 12, 9]})
                  
                  unique = a["Program"].append(b["Program"]).unique()
                  palette = dict(zip(unique, sns.color_palette(n_colors=len(unique))))
                  palette.update({"Total":"k"})
                  
                  ax = sns.barplot(data=a, x='Scenario', y='Duration',
                                   hue='Program', ci=None, palette=palette)
                  plt.tight_layout()
                  plt.figure()
                  
                  ax2 = sns.barplot(data=b, x='Scenario', y='Duration',
                                    hue='Program', ci=None,  palette=palette)
                  plt.tight_layout()
                  plt.show()
                  

                  这篇关于海运-根据色调名称更改条形图颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:如何使用海运为我的DataFrame创建堆叠条形图 下一篇:具有多个分布的海运距离图/离散图

                  相关文章

                      <bdo id='tqVtT'></bdo><ul id='tqVtT'></ul>

                    <small id='tqVtT'></small><noframes id='tqVtT'>

                    <i id='tqVtT'><tr id='tqVtT'><dt id='tqVtT'><q id='tqVtT'><span id='tqVtT'><b id='tqVtT'><form id='tqVtT'><ins id='tqVtT'></ins><ul id='tqVtT'></ul><sub id='tqVtT'></sub></form><legend id='tqVtT'></legend><bdo id='tqVtT'><pre id='tqVtT'><center id='tqVtT'></center></pre></bdo></b><th id='tqVtT'></th></span></q></dt></tr></i><div id='tqVtT'><tfoot id='tqVtT'></tfoot><dl id='tqVtT'><fieldset id='tqVtT'></fieldset></dl></div>
                    <tfoot id='tqVtT'></tfoot>
                  1. <legend id='tqVtT'><style id='tqVtT'><dir id='tqVtT'><q id='tqVtT'></q></dir></style></legend>