【发布时间】:2022-10-15 21:36:14
【问题描述】:
所以我试图制作一些情节并试图使用cmap“jet”。它一直显示为 viridis,所以我在 SE 周围挖掘并尝试了一些非常简单的图:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
y = x
t = x
df = pd.DataFrame([x,y]).T
df.plot(kind="scatter", x=0, y=1, c=t, cmap="jet")
x = np.arange(0, 100.1)
y = x
t = x
df = pd.DataFrame([x,y]).T
df.plot(kind="scatter", x=0, y=1, c=t, cmap="jet")
对这里发生的事情有任何想法吗?我可以说它与数据框中字段的 dtype 有关(将 dypte="float" 添加到第一组代码并得到与第二组代码相同的结果),但看不到为什么会这样。
当然,如果我的代码没有问题,我真正想要的是一种解决方法。
【问题讨论】:
-
是的,这很奇怪,最接近的是 pandas scatter plot
c takes str, int or array-like(虽然我不确定为什么t不是指您再次 int 的索引)。无论如何,解决方法是使用 matplotlib 而不是df.plot,如果有帮助,我可以发布答案(现在没有这样做,因为问题是关于根本原因而不是关于修复)。 -
即使
df.plot(kind="scatter", x=0, y=1, c=df.index.values.tolist(), cmap='jet')回落到 viridis,而 df.index.values.tolist() 显然只是 int。 -
@MagnusO_O 将其作为答案发布就可以了。我将编辑我的问题,因此它建议解决方法也是可以接受的^_^
标签: python pandas dataframe matplotlib colormap