matplotlib可视化

2020-06-28  本文已影响0人  文嘉达_0da8

一、线形图

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)
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)
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)
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='->'))
上一篇下一篇

猜你喜欢

热点阅读