常使用的语法有:
x和y:表示标签或者位置,用来指定显示的索引,默认为None。
kind:表示绘图的类型,默认为line,折线图。
subplots:是否对列分别作子图,默认False
title:图形的标题
grid:图形是否有网格,默认None
color:对颜色的设置
stacked:是否堆积,在折线图和柱状图中默认为False,在区域图中默认为True
先对一份水果数据的读取:
frame = pd.read_csv('fruit.csv', encoding='utf-8') # 数据转为utf-8编码
frame
# 输出为
month apple banana peach
0 Jan 300 310 190
1 Feb 320 320 264
2 Mar 310 330 247
3 Apr 245 345 315
4 May 340 350 285
5 Jun 289 326 346
6 Jul 340 378 145
7 Aug 317 352 265
8 Sep 356 249 218
9 Oct 346 342 312
10 Nov 346 259 170
11 Dec 346 298 256
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
# kind='bar'图形类型为柱形图,subplots制作子图
df.plot(kind='bar',
x = 'month',
y=['apple', 'banana','peach'],
#分别作子图
subplots=True,
title='年份的水果销售柱形图'
)
# plt.show()
frame.plot(kind=‘bar’, stacked=True) # stacked设置重叠区域
frame.plot(kind=‘barh’, stacked=True) # 柱状图barh是水平方向制作
pandas默认为绘制折线图。
将上述水果绘制成折线图:
frame.plot() # pandas默认绘制折线图
frame.plot(y='peach') # 设置参数绘制自己想要的数据
frame.plot(x='month', y='apple') # 根据需求设置好x和y轴
frame.plot(kind='line', x = 'month', y = ['apple', 'banana', 'peach'])
用一个数据更多的DataFrame来绘制成折线图
frame = pd.DataFrame(np.random.randn(1000, 2), columns=['B', 'C']).cumsum()
frame["A"] = pd.Series(list(range(1000))) # range是python内置函数,通过设置为一组Series来添加进去DataFrame中的列项
# frame['A'] = range(1000)
# frame
frame.plot(x="A", y = "B")
pandas.DataFrame.cumsum()方法
cumsum(axis=1):当axis=1时,是按列累加和的
cumsum(axis=0):当axis=0时按行(或者说索引 Index)累加和
将上述水果绘制成箱型图
frame.plot(kind='box', x='month', y = ['apple', 'banana', 'peach'])
frame.plot.box() # 也可以按照默认,不设置x和y、不设置kind参数,等价于frame.plot(kind='box')
frame.boxplot() # 绘制带有网格的箱型图
将上述水果绘制成散点图:
用kind参数和不用kind参数的写法
frame.plot.scatter(x='month', y='banana')
frame.plot(kind='scatter', x='month', y='banana')
在散点图上修改散点的形状和颜色
frame.plot(kind='scatter', x='month', y='banana', color='red', marker="*", s=100)
# marker 为设置散点形状,s为设置散点大小
其它图像有:
pie:饼状图
hist:直方图(数值频率分布)
kde:密度图,主要对柱状图添加
Kernel 概率密度线
area:区域图(面积图)
hexbin:蜂巢图