要绘制单个点,您可以执行以下操作:
plt.plot([x], [y], marker='o', markersize=3, color="red")
label
参数。是否有方法可以在这里实现呢?在新的可重现示例中,这个语句无法实现:plt.plot(point['x'], point['y'], marker='o', markersize=3, color='red', label='point')
。 - Max Ghenis当绘制单个数据点时,您不能使用线条进行绘制。这是显而易见的,因为绘制线条实际上是在数据点之间绘制,因此如果您只有一个数据点,那么就没有东西可以将您的线连接到。
但是,您可以使用标记绘制单个数据点,这些标记通常直接绘制在数据点上,因此即使您只有一个数据点也没关系。
目前您正在使用
ax = point.plot(x='x', y='y', ax=ax, style='r-', label='point')
绘制曲线。这将生成一条红色线(r
代表红色,-
代表实线)。如果使用以下代码,则会得到蓝色十字形(b
代表蓝色,x
代表十字形)。
ax = point.plot(x='x', y='y', ax=ax, style='bx', label='point')
pandas
在绘图时内部使用matplotlib
库,你可以在这里找到各种样式参数的表格。如果你需要在有多个数据点时去除标记,那么你可以检查数据集的长度然后选择适当的样式。
ax
。 - Max Ghenis在使用.plot(..)
方法时存在的另一个问题是,图例是以线条而不是点的形式显示。
为了解决这个问题,我建议使用plt.scatter(..)
方法:
df = pd.DataFrame({'x': [1, 2, 3], 'y': [3, 4, 6]})
point = pd.DataFrame({'x': [2], 'y': [5]})
fig, axes = plt.subplots(1, 2, figsize=(20, 5))
# OP VERSION
df.plot('x', 'y', ax=axes[0], label='line')
point.plot('x', 'y', ax=axes[0], style='r-', label='point')
# MY VERSION
df.plot('x', 'y', ax=axes[1], label='line')
axes[1].scatter(point['x'], point['y'], marker='o', color='r', label='point')
axes[1].legend(loc='upper left')
pandas
进行绘图)。 - Max Ghenis