Python+Matplotlib绘制发散条形图的示例代码
更新时间:2023年06月06日 15:29:53 作者:SpikeKing
发散条形图(Diverging Bar)是一种用于显示数据分布的图表,可以帮助我们比较不同类别或分组的数据的差异和相对性,本文介绍了Matplotlib绘制发散条形图的函数源码,需要的可以参考一下
发散条形图(Diverging Bar)是一种用于显示数据分布的图表,可以帮助我们比较不同类别或分组的数据的差异和相对性。发散条形图的特点是,以一个中心点为基准,将数据分为两个方向,通常用不同的颜色来表示正负或高低。
示例如下:
源码如下:
#!/usr/bin/env python # -- coding: utf-8 -- """ Copyright (c) 2022. All rights reserved. Created by C. L. Wang on 2023/6/6 """ import os import matplotlib.pyplot as plt from myutils.project_utils import read_excel_to_df from root_dir import DATA_DIR def diverging_bar( df, value_col, y_ticks_col, x_label="", y_label="", title="", is_grid=False, is_show=False, save_name="" ): """ 默认数据存储至 df["diff"] 字段 :param df: 数据 :param value_col: 数值列 :param y_ticks_col: 标签列 :return: """ # 准备数据 df['colors'] = ['red' if x < 0 else 'green' for x in df[value_col]] df.sort_values(value_col, inplace=True) df.reset_index(inplace=True) plt.figure(figsize=(12, 12), dpi=80) # 设置数据 plt.hlines(y=df.index, xmin=0, xmax=df[value_col], color=df.colors, alpha=0.4, linewidth=8) # 设置标签 # plt.yticks(df.index, df[y_ticks_col], fontsize=12) # y轴 plt.yticks(df.index, df[y_ticks_col], fontsize=12) # y轴 # 设置图表说明 if x_label: plt.gca().set(xlabel=f'${x_label}$') if y_label: plt.gca().set(ylabel=f'${y_label}$') # $$符号表示斜体 plt.title(title, fontdict={'size': 12}) if is_grid: # 显示网格 plt.grid(linestyle='--', alpha=0.5) if save_name: plt.savefig(save_name, bbox_inches='tight', format='png', transparent=True) if is_show: plt.show() def main(): # df = read_excel_to_df(os.path.join(DATA_DIR, "ourbest_20230605_dockq_9_final.xls")) df = read_excel_to_df(os.path.join(DATA_DIR, "ourbest_20230601_tmscore_56.xls")) x1 = df["m0-score"] x2 = df["m2-score"] # x2 = df["m1-score"] df["diff"] = x2 - x1 df.info() diverging_bar( df, value_col="diff", y_ticks_col="target", x_label="DockQ", y_label="Target", title="", is_show=True, save_name="xxx.png") if __name__ == '__main__': main()
到此这篇关于Python+Matplotlib绘制发散条形图的示例代码的文章就介绍到这了,更多相关Python Matplotlib发散条形图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
在Python的Flask框架中验证注册用户的Email的方法
这篇文章主要介绍了在Python的Flask框架中验证注册用户的Email的方法,包括非常详细的测试过程,极力推荐!需要的朋友可以参考下2015-09-09python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
这篇文章主要介绍了python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性,需要的朋友可以参考下2020-02-02python 两种方法修改文件的创建时间、修改时间、访问时间
这篇文章主要介绍了python 如何修改文件的创建时间、修改时间、访问时间的两种方法,帮助大家更好的利用python处理文件,感兴趣的朋友可以了解下2020-09-09
最新评论