从DataFrame问题绘制结果(散点图)。蟒蛇

时间:2016-06-23 16:48:09

标签: python pandas plot dataframe

我正在使用以下代码将DataFrame绘制为散点图:

我的数据框看起来像这样 -

Sector    AvgDeg 
0        1        52
1        2        52
2        3        52
3        4        54
4        5        52
...     ...      ...

df.plot.scatter(x='Sector', y='AvgDeg', s=df['AvgDeg'], color='LightBlue',grid=True)
plt.show()

我得到了这个结果: enter image description here

我需要的是用不同的颜色和相应的图例绘制每个点。例如:-blue dot-'Sector 1', - red dot-'Sector 2',依此类推。

你知道怎么做吗? TKS !!

2 个答案:

答案 0 :(得分:1)

您需要做的是使用与散点图的c参数中的点大小相同的列表。

cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF'])
txt = ["text1", "text2", "text3", "text4"]
fig, ax = plt.subplots()
x = np.arange(1, 5)
y = np.arange(1, 5)
#c will change the colors of each point
#s is the size of each point...
#c_map is the color map you want to use 
ax.scatter(x, y,s = 40, cmap = cmap_light, c=np.arange(1, 5))
for i, j in enumerate(txt):
    #use the below code to display the text for each point
    ax.annotate(j, (x[i], y[i]))
plt.show()

结果是什么让你 - enter image description here

为31点分配更多不同的颜色,例如你只需更改尺寸......

ax.scatter(x, y,s = 40, cmap = cmap_light, c=np.arange(1, 32))

同样,您可以通过更改上面的txt列表来注释这些点。

答案 1 :(得分:0)

我会这样做:

import matplotlib.pyplot as plt
import matplotlib as mpl

mpl.style.use('ggplot')

colorlist = list(mpl.colors.ColorConverter.colors.keys())

ax = df.plot.scatter(x='Sector', y='AvgDeg', s=df.AvgDeg*1.2,
                     c=(colorlist * len(df))[:len(df)])
df.apply(lambda x: ax.text(x.Sector, x.AvgDeg, 'Sector {}'.format(x.Sector)), axis=1)

plt.show()

结果

enter image description here