我有一些时间序列数据,我想用颜色比例来表示一个数据点的年龄。我可以成功地使色条工作:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from matplotlib.dates import date2num
x = np.random.randint(low=0, high=10, size=10)
y = np.random.randint(low=0, high=10, size=10)
dates = pd.date_range("2000-01-01", end="2000-01-10", freq="D")
df = pd.DataFrame({"x": x, "y": y, "dates": dates})
sc = plt.scatter(df["x"], df["y"], c=[date2num(i) for i in df["dates"]])
plt.colorbar(sc)
plt.savefig("dates.png")
但是,我不明白如何使用built in colour maps,就像感知上一致或连续的彩色地图。当调用scatter时,如何使用内置的彩色贴图作为c
?在
将
cmap
选项添加到散点:sc = plt.scatter(df["x"], df["y"], c=[date2num(i) for i in df["dates"], cmap=plt.cm.viridis)
。您可以使用vmin
和vmax
参数指定colorbar的范围。在如果您是matplotlib 1.5之前的版本,那么请查看this答案,以获得感知上一致的连续颜色映射。在
相关问题 更多 >
编程相关推荐