天天看点

Python matplotlib画图

利用Python matplotlib包来画图

Python matplotlib包可以画各种类型的图,功能非常齐全。

# 曲线图:matplotlib.pyplot.plot
# 柱状图:matplotlib.pyplot.hist
# 散点图:matplotlib.pyplot.scatter
# 箱式图:matplotlib.pyplot.boxplot

import matplotlib as mpl
from matplotlib import pyplot as plt
import seaborn as sns
import pandas as pd

#曲线图实例
data = pd.read_csv('/data.csv', encoding = 'gbk')		#数据中有中文字符时,读取要加gbk
x = np.arange(30) + 1
y = data.iloc[0][1:31]
plt.plot(x,y, color = 'blue',linewidth = 1.5, linestyle = '-',marker = '.',label = 'mean')

#坐标轴设置
ax = plt.subplot(111)
ax.spines['right'].set_color('none')        #去掉右边的边框线
ax.spines['top'].set_color('none')          #去掉上边的边框线

#X轴从底部向上移动
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',23))

#Y轴从左边向右边移动
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

#设置横纵坐标的取值范围
plt.xlim(x.min()*0.9, x.max()*1.1)
plt.ylim(y.min()*0.9, y.max()*1.1)

#设置横纵坐标的刻度值
plt.xticks([0,5,10,15,20,25,30],['0','5','10','15','20','25','30'])
plt.yticks([25,30,35,40,45],['25','30','35','40','45'])

#特殊点添加注解
plt.scatter([23,],[y[22],],50,color = 'blue')       #需要注解的点的位置,放大该点
plt.annotate('holiday', xy= (23,y[22]),xytext = (24,30.2), fontsize = 14, color = 'm', arrowprops = dict(arrowstyle = '->',
        connectionstyle = 'arc3, rad = 0.1',color = 'm'))       #给该点进行注解,先设置注解箭头的位置,然后设置注解的位置

#设置标题,横纵轴的名称
plt.title('Title', fontsize = 12)
plt.xlabel('Time',fontsize = 12, labelpad = 6)
plt.ylabel('Numble',fontsize = 12, labelpad = 6)

#设置图例及位置
plt.legend(loc = 'best')

#显示网格线
plt.grid(True)

plt.show()

#柱状图
# x = np.random.normal(size=1000)
# plt.hist(x, bins=10)        #bins设置柱状图中柱的数量
# plt.show()

#散点图
# x = np.random.normal(size=1000)
# y = np.random.normal(size=1000)
# plt.scatter(x,y)
# plt.show()

#箱式图
# x = np.random.normal(size=1000)
# plt.boxplot(x)      #分布情况,异常点等
# plt.show()
           

根据自己的需求更改设置,不需要的可以去掉。