【问题标题】:Visualizing a file based on byte ranges in python基于python中的字节范围可视化文件
【发布时间】:2020-07-11 23:13:02
【问题描述】:

我有描述二进制文件构成的数据。每个数据点都指定了以字节为单位的开始和结束范围以及类型:

[0x046270, 0x057574, "type1"]
[0x057574, 0x05BF20, "type2"]
[0x05BF20, 0x05EF80, "type1"]
[0x05EF80, 0x05F050, "type2"]

我希望能够通过着色部分来可视化文件并获得类似于旧 Windows 磁盘碎片整理实用程序中可以看到的内容。

我已尝试为此使用 matplotlib 的堆叠条形图,但我看到了一些问题,并认为我可能为此目的滥用了它。是否有以下图表类型的名称或任何简洁的渲染方式?

【问题讨论】:

    标签: python matplotlib data-visualization


    【解决方案1】:

    包含 256 个扇区图像的基本堆叠图。要做两层像呈现的图片,需要添加ax2或者改变数据的结构 有一个 过程很繁重,所以需要一些时间才能输出。

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import random
    FAT_No = np.arange(0, pow(2,8))
    sector_st = random.choices(['type1','type2','type3','type4'], k=256)
    value = [1]*256
    before = ['before']*256
    df = pd.DataFrame({'before':before,'fat_no':FAT_No, 'sector':sector_st, 'value':value})
    
    df
        before  fat_no  sector  value
    0   before  0   type1   1
    1   before  1   type1   1
    2   before  2   type4   1
    3   before  3   type2   1
    4   before  4   type2   1
    ... ... ... ... ...
    251 before  251 type2   1
    252 before  252 type2   1
    253 before  253 type3   1
    254 before  254 type2   1
    255 before  255 type4   1
    
    fig = plt.figure(figsize=(16,3),dpi=144)
    ax = fig.add_subplot(111)
    
    color = {'type1':'b','type2':'g','type3':'r','type4':'w'}
    
    for i in range(len(df)):
        ax.barh(df['before'], df['value'].iloc[i], color=color[df['sector'].iloc[i]], left=df['value'].iloc[:i].sum())
    
    plt.show()
    

    【讨论】:

    • 感谢您的帮助!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 2015-11-05
    • 2021-03-05
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多