前言
在pandas中,无论是series还是dataframe都内置了.plot()方法,可以结合plt.show()进行很方便的画图。
Series.plot() 和 Dataframe.plot()参数
data : Series kind : str ‘line’ : line plot (default) ‘bar’ : vertical bar plot ‘barh’ : horizontal bar plot ‘hist’ : histogram ‘box’ : boxplot ‘kde’ : Kernel Density Estimation plot ‘density’ : same as ‘kde’ ‘area’ : area plot ‘pie’ : pie plot 指定画图的类型,是线形图还是柱状图等 label 添加标签 title 添加标题 ……(后接一大堆可选参数) 详情请查阅:官方文档传送门
Dataframe.plot()参数 也是大同小异: 详情请查阅:官方文档传送门
Series.plot()代码demo
import matplotlib
.pyplot
as plt
import pandas
as pd
import numpy
as np
from pandas
import Series
np
.random
.seed
(666)
s1
= Series
(np
.random
.randn
(1000)).cumsum
()
s2
= Series
(np
.random
.randn
(1000)).cumsum
()
s1
.plot
(kind
= 'line', grid
= True, label
= 'S1', title
= 'xxx')
s2
.plot
(label
= 's2')
plt
.legend
()
plt
.show
()
figure
, ax
= plt
.subplots
(2, 1)
ax
[0].plot
(s1
)
ax
[1].plot
(s2
)
plt
.legend
()
plt
.show
()
fig
, ax
= plt
.subplots
(2, 1)
s1
.plot
(ax
= ax
[1], label
= 's1')
s2
.plot
(ax
= ax
[0], label
= 's2')
plt
.legend
()
plt
.show
()
图1: 图2: 图3:
Dataframe.plot()代码demo
import numpy
as np
import pandas
as pd
import matplotlib
.pyplot
as plt
from pandas
import Series
, DataFrame
np
.random
.seed
(666)
df
= DataFrame
(
np
.random
.randint
(1, 10, 40).reshape
(10, 4),
columns
= ['A', 'B', 'C', 'D']
)
print(df
)
'''
A B C D
0 3 7 5 4
1 2 1 9 8
2 6 3 6 6
3 5 9 5 5
4 1 1 5 1
5 5 6 8 2
6 1 1 7 7
7 1 4 3 3
8 7 1 7 1
9 4 7 4 3
'''
df
.plot
(kind
= 'bar')
plt
.show
()
df
.plot
(kind
= 'barh')
plt
.show
()
df
.plot
(kind
= 'bar', stacked
= True)
plt
.show
()
df
.plot
(kind
= 'area')
plt
.show
()
b
= df
.iloc
[6]
b
.plot
()
plt
.show
()
for i
in df
.index
:
df
.iloc
[i
].plot
(label
= str(i
))
plt
.legend
()
plt
.show
()
df
['A'].plot
()
plt
.show
()
df
.T
.plot
()
plt
.show
()
图1: 图2: 图3: 图4: 图5: 图6: 图7: 图8: