Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在matplotlib中将模式编码为颜色_Python_Matplotlib_Plot_Graph_Statistics - Fatal编程技术网

Python 在matplotlib中将模式编码为颜色

Python 在matplotlib中将模式编码为颜色,python,matplotlib,plot,graph,statistics,Python,Matplotlib,Plot,Graph,Statistics,我有一个传感器,我正在收集数据。基本上,它是开还是关取决于它与设计的感知距离。所以,我有一个轮子上的小装置,我用它把传感器移向材料,然后把它拉开……然后把它推回,再把它拉开。想象一下吸尘时你会做什么动作 所以,不管怎样,当我在很远的地方,传感器是关闭的…当我真正靠近时,传感器是打开的。没有问题。 我感兴趣的是灰色区,甜点区,黄油区,不管你怎么称呼它,有时它会打开,也许在下一个关口,它会打开 我想在我用MatplotLib绘制的数据图中对其进行编码。我的想法是根据数据中出现的频率对转换进行热映射?

我有一个传感器,我正在收集数据。基本上,它是开还是关取决于它与设计的感知距离。所以,我有一个轮子上的小装置,我用它把传感器移向材料,然后把它拉开……然后把它推回,再把它拉开。想象一下吸尘时你会做什么动作

所以,不管怎样,当我在很远的地方,传感器是关闭的…当我真正靠近时,传感器是打开的。没有问题。 我感兴趣的是灰色区,甜点区,黄油区,不管你怎么称呼它,有时它会打开,也许在下一个关口,它会打开

我想在我用MatplotLib绘制的数据图中对其进行编码。我的想法是根据数据中出现的频率对转换进行热映射?

正如你所看到的,这是相当无聊和无趣的。我想通过加入一些其他机制来传达变换的变化,使它看起来更漂亮、更花哨。在这一点上,我可能已经从高到低,从低到高,在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) 距离度量是离散的,而绘制的是一条连续线。图表不应该掩盖这一点

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

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


我想你首先要弄清楚你想要实现什么以及为什么。我认为这些问题不适用于stackoverflow。“以某种方式使图表看起来更华丽”可能太宽泛了。一旦你知道了你的图表应该是什么样子,可能会有很多关于如何实现这一点的答案!真是太好了,伙计!你认为你能在那里加一条最合适的线吗?要得到一条曲线非常好的直线,并在下降的中间平滑下来?您希望适合哪种类型的直线?如果你问我的话,可能是乙状结肠。如果你很难找到合适的线条,你应该提出一个新问题。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# grab data
df = pd.read_csv('sensor_data.csv')
position = df.Counter
status = df.Value

# determine fraction on;
# I will use bincount for this, which only accepts positive arguments
min_pos = position.min()
position -= min_pos

# determine fraction on
counts_on = np.bincount(position[status==1], minlength=position.max()+1)
counts_all = np.bincount(position, minlength=position.max()+1)
fraction_on = counts_on.astype(float) / counts_all

# plot
x = np.arange(min_pos, position.max()+1+min_pos)

fig, ax = plt.subplots(1,1)
ax.bar(x-0.5, fraction_on, width=1., facecolor='gray', edgecolor=None)
ax.set_xlabel('Distance')
ax.set_ylabel(r'Logic Level $\frac{ON}{ON + OFF}$')