根据 matplotlib 字典中的颜色对散点图进行分组 (python)
Group scatterplot by colour from dictionary in matplotlib (python)
我有一本要绘制的数据字典。我的字典目前的结构如下:(# = some number)
data = { '15': [{'x': #, 'y': #}, {'x': #, 'y': #}, etc..], '16': [{'x': #, 'y': #}, {'x': #, 'y': #}, etc..], '17': [{'x': #, 'y': #}, {'x': #, 'y': #}, etc..] }
我目前正在遍历字典中的每个键值并将 x 和 y 值附加到 x 和 y 数组,然后绘制 x 和 y
fig, ax = plt.subplots()
ax.scatter(x, y)
plt.show()
我仍然想绘制所有这些 x 和 y 点,但是 colour/seperate 它们来自哪个键的点。
对于这个示例字典,我想在情节上有一个图例,其中包含不同颜色的点,类别为:'15'、'16'、'17'
我专门在网上查找了一些资源 link: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()))
据我了解,这应该可以回答您的问题
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()
我有一本要绘制的数据字典。我的字典目前的结构如下:(# = some number)
data = { '15': [{'x': #, 'y': #}, {'x': #, 'y': #}, etc..], '16': [{'x': #, 'y': #}, {'x': #, 'y': #}, etc..], '17': [{'x': #, 'y': #}, {'x': #, 'y': #}, etc..] }
我目前正在遍历字典中的每个键值并将 x 和 y 值附加到 x 和 y 数组,然后绘制 x 和 y
fig, ax = plt.subplots()
ax.scatter(x, y)
plt.show()
我仍然想绘制所有这些 x 和 y 点,但是 colour/seperate 它们来自哪个键的点。
对于这个示例字典,我想在情节上有一个图例,其中包含不同颜色的点,类别为:'15'、'16'、'17'
我专门在网上查找了一些资源 link: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()))
据我了解,这应该可以回答您的问题
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()