python matplotlib面向对象绘图-案例2

1.说明

(1)绘图日销售业绩趋势图,x坐标轴设置为日期格式 

(2)坐标轴去除掉脊柱线和相应的刻度线,刻度标签,只保留x坐标轴

 

2.程序

 

###########第一部分:读取数据##############
import sys
sys.path.append(r"E:\python\project\python可视化\eda可视化项目\数据清洗与描述")
import data_and_clear
from datetime import datetime
df=data_and_clear.yd_department_day_sold()
#x轴转为日期格式 
dates  = [str(y) for y in list(df['date'])]
x_date = [datetime.strptime(d, '%Y%m%d').date() for d in dates]
      

###########第二部分:matplotlib绘图##############

#设置显示中文
from pylab import *  
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

#显示中文
matplotlib.rcParams['font.family'] = 'Microsoft JhengHei'
mpl.rcParams['font.sans-serif'] = ['Microsoft JhengHei']  #更新字体格式
mpl.rcParams['font.style'] = 'italic'
mpl.rcParams['font.size'] = 9                          #更新字体大小

#figure布局
fig=plt.figure(figsize=(8,4))
ax1=fig.add_subplot(1,1,1) 

#绘图
ax1.plot(x_date,df['HC'],'--',color='b',marker='o',ms=4, mec='r',mew=2, mfc='w',label='业绩趋势走向')
plt.gcf().autofmt_xdate()  # 自动旋转日期标记

#配置坐标轴
#设置x轴为日期格式
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y/%m/%d'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator())    

#去除部分边框和刻度线
ax1.spines['left'].set_color('none')
ax1.spines['right'].set_color('none')
ax1.spines['top'].set_color('none')
ax1.tick_params(labelleft=False,left=False,right=False,top=False)
ax1.tick_params(labelsize=9)

#设置坐标轴标签
plt.ylabel("销售额(万美元)",fontsize=11,color='b')

#标注数据
for xy in zip(x_date,df['HC']):                                 #标注数据  
    plt.annotate("%0.02f" % round(xy[1]/10000,2), xy=xy, xytext=(2,12), textcoords='offset points',color='k',rotation=30)  

#图像标题
ax1.set_title("业绩趋势走向图",fontsize=12)

#显示图像
plt.show()



python matplotlib面向对象绘图-案例2_第1张图片

 

 

 

 

 

 

你可能感兴趣的:(python,matplotlib可视化)