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

代码已详细注释

画图基本步骤
(1)导包;
(2)中文显示;
(3)读入数据;
(4)提取所需列和行数据标签;
(5)设置画布尺寸及分辨率;
(6)设置相关参数。

1-折线图绘制

# -*- coding: utf-8 -*-
"""
Created on Mon Jun 27 22:31:08 2022@author: Administrator
"""import numpy as np
import pandas as pd
from 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 2022@author: Administrator
"""import numpy as np
import pandas as pd
from 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()

运行结果图
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部