300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python数据可视化 matplotlib画折线图 组合图

python数据可视化 matplotlib画折线图 组合图

时间:2020-04-03 03:59:02

相关推荐

python数据可视化 matplotlib画折线图 组合图

代码已详细注释

画图基本步骤

(1)导包;

(2)中文显示;

(3)读入数据;

(4)提取所需列和行数据标签;

(5)设置画布尺寸及分辨率;

(6)设置相关参数。

1-折线图绘制

# -*- coding: utf-8 -*-"""Created on Mon Jun 27 22:31:08 @author: Administrator"""import numpy as npimport pandas as pdfrom pylab import yticks#设置y轴刻度使用from module import *import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']='SimHei' #用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False #用来正常显示负号df=pd.read_excel('D:/Users/Administrator/Desktop/期末论文/主播及其粉丝数.xlsx')#print(df)x,y = df['主播'],df['粉丝数']fig = plt.figure(figsize=(40,20),dpi=240)#画布尺寸sub = fig.add_subplot()#面向对象画图plt.xticks(rotation=45)#45度旋转plt.grid()#网格化yticks(np.linspace(300,2500,15,endpoint=False))#设置y轴刻度#第一个参数位起始值,第二个为坐标终止,第三个为分成几分#plt.text()for a, b in zip(x, y):plt.text(a, b, b, ha='center', va='bottom', fontsize=15)#plt.text()方法显示数据纵坐标数据#plt.text(a, b, "b", ha='center', va='bottom', fontsize=20)plt.xlabel('主播')#添加横标签plt.legend('粉丝数')#标签plt.ylabel('数量(万)')#添加纵标签plt.title('各大主播及其粉丝数量折线图')#添加图表标题plt.tick_params(axis='y',labelsize=12, # y轴字体大小设置color='r', # y轴标签颜色设置 labelcolor='b', # y轴字体颜色设置direction='in' # y轴标签方向设置) plt.tick_params(axis='x',labelsize=12, # x轴字体大小设置color='r', # x轴标签颜色设置 labelcolor='b', # x轴字体颜色设置direction='in' # x轴标签方向设置) sub.plot(x,y,'r.--')#红线点-连接plt.show()

折线图和柱状图的组合图

# -*- coding: utf-8 -*-"""Created on Tue Jun 28 20:15:57 @author: Administrator"""import numpy as npimport pandas as pdfrom pylab import yticks#设置y轴刻度使用from module import *import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']='SimHei' #用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False #用来正常显示负号df=pd.read_excel('D:/Users/Administrator/Desktop/期末论文/主播作品及其收听数.xlsx')#print(df)x,y1,y2 = df['标题'],df['总集数'],df['总收听数']fig = plt.figure(figsize=(60,20),dpi=440)#画布尺寸及分辨率plt.xticks(rotation=45)#45度旋转plt.title('各大主播及其粉丝数量组合图')#添加图表标题ax1 = fig.add_subplot(111)#面向对象画图ax1.bar(x=df['标题'],height=df['总集数'],width = 0.8, #柱形图的宽度color='green', #填充颜色alpha = 0.8, #透明度,值越小越透明edgecolor='black', #图形边缘颜色label='集数')ax1.set_ylim([0,6000])#ax1.set_yticks(np.linspace(300,6000,20,endpoint=False))ax1.set_ylabel('更新总集数',fontsize=20)ax1.set_title('各大主播及其粉丝数量折线图',fontsize=20)ax1.set_xticks(df['标题'])#ax1.set_xtickslabel(df['标题'].astype('str'),rotation=90)ax2=ax1.twinx()#跟ax1共用一个x轴,组合图使用ax2.plot(df['标题'],df['总收听数'],#linewidth = 0.6,#折线图的粗细color='red',alpha = 0.8,marker='o',label='收听数')ax2.set_ylim([0,80])ax2.set_ylabel('总收听数',fontsize=20)fig.legend(loc=(0.85,0.85))#标签位置plt.show()

运行结果图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。