将模式编码为matplotlib中的颜色

时间:2017-05-10 04:55:45

标签: python matplotlib plot graph statistics

我有一个传感器,我正在收集数据。基本上,它是打开还是关闭取决于它与设计感知的距离。所以,我在车轮上安装了这个小装备,我将它用于将传感器移向材料,然后将其拉开......然后将其推回并再次拉开。想象一下吸尘时的动作。

所以,无论如何,当我离我很远时,传感器关闭......当我真的很近时,传感器开启了。没问题。 我感兴趣的是灰色区域,甜点,黄油区域,无论你想要什么,有时它会打开,也许在下一次通过时,它会靠近5mm。

我想在这个用MatplotLib绘制的数据图表中以某种方式编码。我的想法是根据数据中出现的频率对转换进行加热映射? enter image description here

正如你所看到的,它非常无聊和无趣。我想通过结合一些其他机制来传达过渡的变化,使它看起来更漂亮和更漂亮。在这一点上,我可能已经从高到低,从低到高从15转1000倍,而所有其他过渡都可能发生过一次......没有办法说出来。

如何将这种映射添加到此类数据中?

这是python脚本......非常简单的东西:

import numpy as np
import matplotlib.pyplot as plt

data = np.genfromtxt('/home/dale/test1.txt', delimiter=',', skip_header=10, names=['x','y'])

fig = plt.figure()

ax1 = fig.add_subplot(111)

ax1.set_title("Distance vs Level")
ax1.set_xlabel('Distance')
ax1.set_ylabel('Logic Level')

ax1.step(data['x'],data['y'], c='r', label='the data')

leg = ax1.legend()

plt.show()

1 个答案:

答案 0 :(得分:0)

我不赞同托马斯'评论。该图表有几个问题,从数据中可以立即看出。

1)您的距离测量是离散的,而您正在绘制一条连续线。图表不应该隐藏它。

2)由于数据是连续的,因此该线最终会在其自身之上。这隐藏了真实的频率。

我认为您只需要一个条形图,而不是您建议的热图:

enter image description here

public List<ReportIndex> GetReportIndex(int reportId)
    {
        List<ReportIndex> reportIndex = null;

        using (var conn = new SqlConnection(connString))
        {
            conn.Open();

            var p = new DynamicParameters();
            p.Add("@ReportId", reportId);

            reportIndex = conn.Query<ReportIndex>("sp_ReportGetReportIndex",
                                        p,
                                        commandType: CommandType.StoredProcedure).ToList();
        }

        return reportIndex;
    }