zoukankan      html  css  js  c++  java
  • python plot 画双坐标轴 设置百分比展示 和字体等细节

    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd  # data processing, CSV file I/O (e.g. pd.read_csv)
    import pymssql  # 引入pymssql模块
    import seaborn as sns  # Provides a high level interface for drawing attractive and informative statistical graphics
    from matplotlib import ticker
    from matplotlib.font_manager import FontProperties
    from pylab import *
    import matplotlib.pyplot as plt
    import seaborn as sns
    plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签
    plt.rcParams['axes.unicode_minus']=False#用来正常显示负号
    
    if __name__ == '__main__':
     conn = pymssql.connect(host='localhost', user='wonderful', password='wonderful', database='ProcreateV93',
                            charset='GBK')
    sql ="select replace(LEFT(CONVERT(varchar(100), op.RecordDate, 120),7),'-','')  AS months, "
    "COUNT(DISTINCT OP.O_iD)   AS patientcount,sum(op.OPSTimes)   optime, "
    "(COUNT(DISTINCT OP.O_iD) + 0.0) / (sum(op.OPSTimes) + 0.0) as pct FROM Oplan op "
    "where op.GroupName is not null "
    "and op.RecordDate is not null "
    "group by replace(LEFT(CONVERT(varchar(100), op.RecordDate, 120),7),'-','') "
    "order by months,patientcount,pct asc"
    df0 = pd.read_sql(sql, conn)
    print(df0)
    df = pd.DataFrame(df0)
    vm=df['months'].astype(str)
    print(vm)
    fig, ax1 = plt.subplots()
    plt.xticks(fontsize='10',color='blue',rotation=67)
    
    # 柱形图
    ax1.bar(df.months.values,df.patientcount.values, color="black", alpha=0.5, label="患者人数")
    ax1.set_xlabel("同期做周期的患者人数")
    ax1.set_ylabel("周期数")
    #  label下边界
    plt.subplots_adjust(bottom=0.18)
    
    ax2 = ax1.twinx()
    # 折线图
    ax2.plot(df.months.values, df.pct.values, color="green", label="周期数")
    ax2.yaxis.set_major_formatter(ticker.PercentFormatter(xmax=1,decimals=0))
    ax2.set_ylabel("周期数")
    #参数x空值X轴的间隔,第二个参数控制每个间隔显示的文本,后面两个参数控制标签的颜色和旋转角度
    # plt.xticks(rotation=45)
    fig.legend(loc="upper right", bbox_to_anchor=(1, 1), bbox_transform=ax1.transAxes)
    
    plt.show();

  • 相关阅读:
    HTML 块级、内联、内联块级元素(转)
    CSS margin-top父元素下落
    JS 窗口resize避免触发多次
    ASP.NET 自制免费.NET代码生成器KevinCodeBuilder
    Plugin 中国省市选择插件
    Git 常用命令(转)
    JS Regex正则表达式的使用(转)
    Git 详细中文安装教程(转)
    业务逻辑中的测试总结(一)----比值类需求测试分解
    python学习笔记系列----(四)模块
  • 原文地址:https://www.cnblogs.com/canyangfeixue/p/15405509.html
Copyright © 2011-2022 走看看