如何使用Pandas散布绘图系列

osc*_*arm 15 python pandas

我有这个系列:

print series.head()
print type(series)
print series.index

year
1992    36.222222
1993    53.200000
1994    49.400000
1995    34.571429
1996    39.200000
Name: ranking, dtype: float64
<class 'pandas.core.series.Series'>

Int64Index([1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014], dtype='int64', name=u'year')
Run Code Online (Sandbox Code Playgroud)

我正在尝试做一个散点图,但是我无法访问该系列中的索引和值.

任何指针将不胜感激.

bjo*_*nen 27

我认为最简单的是

series.plot(style='.')
Run Code Online (Sandbox Code Playgroud)

  • 这是最简单,最快的解决方案:无需重置索引或任何其他操作。非常好!:) (2认同)

Dic*_*ter 19

我相信如果在系列上调用t0调用.plot(),pandas系列不支持kind ='scatter'.

我相信Lev的答案是最好的,适合与熊猫一起使用.我使用matplotlib pyplot,它的工作方式与他的例子类似.

import matplotlib.pyplot as plt
plt.scatter(ser.index, ser)
plt.show()
Run Code Online (Sandbox Code Playgroud)

也许尝试这个:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(1)

year = [1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014]
value = np.random.rand(23)

ser =  pd.Series(index = year,data=value)
df =ser.to_frame()

df.reset_index(inplace=True)
df.columns = ['year','value']
df.plot(kind='scatter',x='year',y='value')
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Lev*_*sky 7

像这样?

import pylab
pylab.scatter(series.index, series)
Run Code Online (Sandbox Code Playgroud)