atr*_*ash 46 python matplotlib
我有2个变量(x,y)随时间(t)变化.我想绘制x与t的关系,并根据yeg的值为滴答的颜色设置为y的最高值,刻度颜色为深绿色,最低值为深红色,对于中间值,颜色将在绿色和红色.
这可以用python中的matplotlib完成吗?
Joe*_*ton 72
这matplotlib.pyplot.scatter是为了什么.
作为一个简单的例子:
import matplotlib.pyplot as plt
import numpy as np
# Generate data...
t = np.linspace(0, 2 * np.pi, 20)
x = np.sin(t)
y = np.cos(t)
plt.scatter(t,x,c=y)
plt.show()
Run Code Online (Sandbox Code Playgroud)

如果要绘制线条而不是点,请参见此示例,在此处进行了修改,以根据需要绘制以黑/红表示功能的好点/坏点:
def plot(xx, yy, good):
"""Plot data
Good parts are plotted as black, bad parts as red.
Parameters
----------
xx, yy : 1D arrays
Data to plot.
good : `numpy.ndarray`, boolean
Boolean array indicating if point is good.
"""
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
from matplotlib.colors import from_levels_and_colors
from matplotlib.collections import LineCollection
cmap, norm = from_levels_and_colors([0.0, 0.5, 1.5], ['red', 'black'])
points = np.array([xx, yy]).T.reshape(-1, 1, 2)
segments = np.concatenate([points[:-1], points[1:]], axis=1)
lines = LineCollection(segments, cmap=cmap, norm=norm)
lines.set_array(good.astype(int))
ax.add_collection(lines)
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83469 次 |
| 最近记录: |