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 plt

plt.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 plt

plt.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()

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

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹿毅十川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值