Matplotlib处理常见中文的一些情形

本文详细介绍如何使用Matplotlib在Python中处理中文时间标签,特别是在x轴上展示月-日-时格式的时间,同时保持图表的美观。文章分享了一种通过设置日期格式和旋转角度来优化x轴显示的方法,并提供了一段示例代码,展示了如何导入中文显示所需的参数,以及如何设置x轴的格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Matplotlib处理常见中文的一些情形

所在领域经常涉及到处理一些时序图,需要在以合适的方式在x axis上显示中文时间。
这个问题虽然很小,但是因为专业的原因,需要经常在x轴上展示多种多样的时间,比如只展示月-日-时,这种非常规的x轴label, 同时要求该部分占图片比例不能太大,不然影响美观。而网络上关于x轴时间的处理相对较少,算写个地方记录下。
这是一篇记录matplotlib处理的博客,同时怀念和某只增某只斌的共渡三年的硕士生涯, 最后非常感谢某增精彩的工作和日常的骚扰为这篇博客提供了素材(大概又要被说矫情了哈哈哈哈 以下是干货)。

关键点

  • 导入可以显示中文的参数
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
  • x坐标轴通过设置格式以及旋转 以显示美观(没强迫症的您随意)

    ax1.xaxis.set_major_formatter(mdate.DateFormatter('%H:%M'))
    plt.xticks(rotation=30)
    

    输入数据、代码及结果

    • 输入数据只有一部分,太长影响美观,读者需要脑补 哈哈哈
    4:15,7,1,1
    4:30,53,21,46
    4:45,673,433,588
    5:00,2449,1711,2209
    5:15,5555,4522,5094
    5:30,8854,8710,9431
    5:45,12886,14687,13918
    6:00,16459,23762,20121
    6:15,20542,37169,26034
    6:30,24708,59783,34398
    6:45,28093,88462,43049
    7:00,30505,134718,51161
    7:15,32046,180216,59468
    7:30,35503,215490,64192
    7:45,39600,239502,70168
    8:00,43334,228761,73596
    8:15,45938,202122,72283
    8:30,45756,167016,68193
    8:45,46982,138231,64956
    
  • 代码

    
    import pandas as pd
    import numpy as np
    from datetime import datetime
    import matplotlib.dates as mdate
    import matplotlib.pyplot as plt 
    plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
    plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
    
    def convert(strAim):
        t = strAim.split(":")
        h, m, s = int(t[0]),float(t[1])/60.0,float(t[2])/3600.0
        return h+m+s
    
    def draw(addressIn,addressOut):
        df =pd.read_csv(addressIn,header = None)
        #print(df.head())
        x = []
        y1 = []
        y2 = []
        y3 = []
        for i in range(len(df)):
            tx = datetime.strptime('2017-8-1 '+df.iloc[i][0], '%Y-%m-%d %H:%M')
            x.append(tx)
            y1.append(df.iloc[i][1])
            y2.append(df.iloc[i][2])
            y3.append(df.iloc[i][3])
        fig1 = plt.figure(figsize=(12,6))#figsize=(16,8)
        ax1 = fig1.add_subplot(1,1,1)
        ax1.plot(x,y1,color='green',label='假期')#折线图
        ax1.plot(x,y2,color='black',label='工作日')
        ax1.plot(x,y3,color='red',ls='--',label='非工作日')
        ax1.xaxis.set_major_formatter(mdate.DateFormatter('%H:%M'))
        #plt.xticks(pd.timedelta_range(start='05:00:00.000000', periods=38, freq='30T'),rotation=90)
        #plt.xticks(x)
        plt.xticks(rotation=30)
        #plt.ylim(0,6000000)
        #ax1.set_title('全天')
        ax1.set_xlabel('时间')
        ax1.set_ylabel('日客流量(人次)')
        plt.legend(loc='upper right')
        plt.subplots_adjust(left=0.2, bottom=0.2, right=0.8, top=0.8)
        plt.savefig('pic%s.png'%(addressOut),dpi=100)
    if __name__ == '__main__':
        draw('differDay.csv','differDay')
    
    
    
  • 结果图示
    在这里插入图片描述

内容概要:文章基于4A架构(业务架构、应用架构、数据架构、技术架构),对SAP的成本中心和利润中心进行了详细对比分析。业务架构上,成本中心是成本控制的责任单元,负责成本归集与控制,而利润中心是利润创造的独立实体,负责收入、成本和利润的核算。应用架构方面,两者都依托于SAP的CO模块,但功能有所区分,如成本中心侧重于成本要素归集和预算管理,利润中心则关注内部交易核算和获利能力分析。数据架构中,成本中心与利润中心存在多对一的关系,交易数据通过成本归集、分摊和利润计算流程联动。技术架构依赖SAP S/4HANA的内存计算和ABAP技术,支持实时核算与跨系统集成。总结来看,成本中心和利润中心在4A架构下相互关联,共同为企业提供精细化管理和决策支持。 适合人群:从事企业财务管理、成本控制或利润核算的专业人员,以及对SAP系统有一定了解的企业信息化管理人员。 使用场景及目标:①帮助企业理解成本中心和利润中心在4A架构下的运作机制;②指导企业在实施SAP系统时合理配置成本中心和利润中心,优化业务流程;③提升企业对成本和利润的精细化管理水平,支持业务决策。 其他说明:文章不仅阐述了理论概念,还提供了具体的应用场景和技术实现方式,有助于读者全面理解并应用于实际工作中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值