一、线形图
import numpy as np
import matplotlib.pyplot as plt
data={
'name':['张三','李四','王五','小明'],
'sex':['female','female','male','male'],
'math':[78,79,83,92],
'city':['北京','上海','广州','北京']
}
df=pd.DataFrame(data)
Out[ ]:
name sex math city
0 张三 female 78 北京
1 李四 female 79 上海
2 王五 male 83 广州
3 小明 male 92 北京
1. 基本使用
plt.plot(df.index,df['math'])
2. 颜色与线型
plt.plot(df.index,df['math'],color='r')
plt.plot(df.index,df['math'],color='#FFFA500') #也可以使用RGB值来更改线条颜色
linestyle可以指定线条的形状,如可以绘制虚线,linewidth可以指定线条的宽度。
plt.plot(df.index,df['math'],linestyle='--',lineswidth=5)
3. 点标记
plt.plot(df.index,df['math'],marker='D')
二、柱状图
1. 透明度
alpha参数可以设置
import matplotlib.pyplot as plt
data=[23,85,72,43,52]
plt.bar(range(len(data)),data,color='royalblue',alpha=0.7)
2. 网格线
grid用于绘制网格线,可以通过参数个性化设置
plt.bar(range(len(data)),data,color='royalblue',alpha=0.7)
plt.grid(color='#95a5a6',linestyle='--',linewidth=1,axis='y',alpha=0.6)
- 堆积柱状图
bottom可以用于设置柱状图的高度,因此可以绘制堆积柱状图
data1=[23,85,72,43,52]
data2=[42,35,21,16,9]
plt.bar(range(len(data)),data1)
plt.bar(range(len(data)),data2,bottom=data1)
- 并列柱状图
width用于设置柱状图的宽度,可以绘制并列柱状图
import numpy as np
data1=[23,85,72,43,52]
data2=[42,35,21,16,9]
width=0.3
plt.bar(np.arange(len(data1)),data1,width=width)
plt.bar(np.arange(len(data2))+width,data2,width=width)
- 水平柱状图
通过barh函数可以绘制水平柱状图
data1=[23,85,72,43,52]
plt.barh(range(len(data1)),data1)
3. 刻度与标签
xticks可以绘制带有标签的柱状图,yticks可以修改Y轴的刻度和标签
data=[23,85,72,43,52]
labels=['A','B','C','D','E']
plt.xticks(range(len(data)),labels)
plt.bar(range(len(data)),data)
xlabel和ylabel可以给X轴和Y轴添加标签,通过titile添加标题
plt.xlabel('Class')
plt.ylabel('Amounts')
plt.title('Example')
plt.bar(range(len(data)),data)
4. 图例
data1=[23,85,72,43,52]
data2=[42,35,21,16,9]
width=0.3
plt.bar(np.arange(len(data1)),data1,width=width,label='one')
plt.bar(np.arange(len(data2))+width,data2,width=width,label='two')
plt.legend()
5. 设置数据标签
plt.text(x,y,str,ha,va,fontsize)
x,y:表示要在哪里显示数值
str:表示要显示的具体数值
ha:在水平方向的位置,有center,left,right三个选项
va :在垂直方向的位置,有center,top,bottom三个选项
fontsize:设置str字体大小
for a,b in zip(x,y):
plt.text(a,b,b,ha='center',va='bottom',fontsize=11)
6. 图表注释
plt.annotate('服务器宕机了',xy=(5,1605),xytext=(6,1605),arrowprops=dict(facecolor='black',arrowstyle='->'))
网友评论