使 pandas plot() 显示 xlabel 和 xvalues

ap2*_*p21 7 python matplotlib pandas

我正在使用标准pandas.df.plot()函数在数据框中绘制两列。出于某种原因,x 轴值和 xlabel 不可见!似乎也没有选项可以在函数中打开它们(参见https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html)。

有人知道发生了什么,以及如何纠正它?

import matplotlib.cm as cm
import pandas as pd

ax1 = df.plot.scatter(x='t', y='hlReference', c='STEP_STRENGTH', cmap=cm.autumn);
Run Code Online (Sandbox Code Playgroud)

给出了这个: xvalues 和标签丢失

jef*_*ale 8

这是 Jupyter 笔记本的一个错误,显示 Pandas 散点图,在使用 Matplotlib 作为绘图后端时显示色阶。

@june-skeeter 在答案作品中有一个解决方案。或者,传递sharex=False给 df.plot.scatter 并且您不需要创建子图。

import matplotlib.cm as cm
import pandas as pd

X = np.random.rand(10,3)

df = pd.DataFrame(X,columns=['t','hlReference', 'STEP_STRENGTH'])

df.plot.scatter(
    x='t', 
    y='hlReference', 
    c='STEP_STRENGTH', 
    cmap=cm.autumn,
    sharex=False
)
Run Code Online (Sandbox Code Playgroud)

请参阅此已关闭的熊猫问题中的讨论。在相关的 SO 答案中引用了上述解决方案。

pandas v1.1.0 仍然存在问题。您可以在此处跟踪问题:https : //github.com/pandas-dev/pandas/issues/36064


Jun*_*ter 5

首先创建您的轴实例,然后将其作为参数发送给 plot()

import matplotlib.cm as cm
import pandas as pd


X = np.random.rand(10,3)
df = pd.DataFrame(X,columns=['t','hlReference', 'STEP_STRENGTH'])
fig,ax1=plt.subplots()
df.plot.scatter(x='t', y='hlReference', c='STEP_STRENGTH', cmap=cm.autumn,ax=ax1)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明