【问题标题】:Group scatterplot by colour from dictionary in matplotlib (python)从matplotlib(python)中的字典中按颜色分组散点图
【发布时间】:2021-12-30 10:01:07
【问题描述】:

我有一本想要绘制的数据字典。我的字典目前的结构如下:(# = some number)

data = { '15': [{'x': #, 'y': #}, {'x': #, 'y': #}, etc..], '16': [{'x': #, 'y': #}, {'x': #, 'y': #}, etc..], '17': [{'x': #, 'y': #}, {'x': #, 'y': #}, etc..] }

我目前正在遍历 dict 中的每个键值并将 x 和 y 值附加到 x 和 y 数组,然后绘制 x 和 y

fig, ax = plt.subplots()
ax.scatter(x, y)
plt.show()

我仍想绘制所有这些 x 和 y 点,但用颜色/分隔它们来自哪个键的点。

对于这个示例字典,我想在绘图上有一个图例,其中包含不同颜色的点,类别为:'15'、'16'、'17'

我在网上查了一些资源,特别是这个链接:https://www.kite.com/python/answers/how-to-color-a-scatter-plot-by-category-using-matplotlib-in-python

并尝试像这样分开,但我认为这不是正确的方向:

pd.DataFrame(data)
pd.DataFrame.groupby(list(data.keys()))

【问题讨论】:

    标签: python pandas dictionary matplotlib pandas-groupby


    【解决方案1】:

    据我了解,这应该可以回答您的问题

    import matplotlib.pyplot as plt
    %matplotlib inline
    import seaborn as sns
    
    data = {'A': [{'x': 1, 'y' : 2}, {'x': 2, 'y' : 3}, {'x': 3, 'y' : 4}], 'B': [{'x': 5, 'y' : 6}, {'x': 6, 'y' : 7}, {'x': 7, 'y' : 8}], 'C': [{'x': 10, 'y' : 11}, {'x': 11, 'y' : 12}, {'x': 12, 'y' : 13}]}
    x, y, group = [], [], []
    for i in data:
        for j in data[i]:
            x.append(j['x'])
            y.append(j['y'])
            group.append(i)
            
    plt.figure(figsize=(8,4))
    sns.scatterplot(x = x, y = y, hue = group)
    plt.savefig("fig.png")
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2020-12-17
      • 2021-04-15
      • 1970-01-01
      • 2013-11-19
      • 2014-09-10
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      相关资源
      最近更新 更多