我是靠谱客的博主 感动纸飞机,最近开发中收集的这篇文章主要介绍xaxis python_Python中的分组Xaxis可变性图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

您可以尝试以下代码,您需要修改plot的xlim和ylim参数以适合您的实际数据:import pandas as pd

import matplotlib.pyplot as plt

from itertools import groupby

import numpy as np

%matplotlib inline

df = pd.DataFrame({'Name':['John']*2+['David']*2+['Mike']*2+['Albert']*2+['King']*2+['Brown']*2,

'TEST_Name':['Class A']*6+['Class B']*6,

'Label':['Median','NINETYFIVEPERC']*6,

'Data':[.54,.62,.55,.62,.55,.67,.58,1.05,.54,.60,.54,.60]})

df = df.set_index(['TEST_Name','Name','Label'])['Data'].unstack()

def add_line(ax, xpos, ypos):

line = plt.Line2D([xpos, xpos], [ypos + .1, ypos],

transform=ax.transAxes, color='gray')

line.set_clip_on(False)

ax.add_line(line)

def label_len(my_index,level):

labels = my_index.get_level_values(level)

return [(k, sum(1 for i in g)) for k,g in groupby(labels)]

def label_group_bar_table(ax, df):

ypos = -.1

scale = 1./df.index.size

for level in range(df.index.nlevels)[::-1]:

pos = 0

for label, rpos in label_len(df.index,level):

lxpos = (pos + .5 * rpos)*scale

ax.text(lxpos, ypos, label, ha='center', transform=ax.transAxes)

add_line(ax, pos*scale, ypos)

pos += rpos

add_line(ax, pos*scale , ypos)

ypos -= .1

ax = df.plot(marker='o', linestyle='none', xlim=(-.5,5.5), ylim=(.3,1.1))

#Below 2 lines remove default labels

ax.set_xticklabels('')

ax.set_xlabel('')

label_group_bar_table(ax, df)

输出图表:

最后

以上就是感动纸飞机为你收集整理的xaxis python_Python中的分组Xaxis可变性图的全部内容,希望文章能够帮你解决xaxis python_Python中的分组Xaxis可变性图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(396)

评论列表共有 0 条评论

立即
投稿
返回
顶部