如何在 matplotlib 中绘制单个点

问题描述 投票:0回答:3

我想在图表上绘制一个点,但似乎它们都需要绘制为列表或方程。

我需要像

ax.plot(x, y)
那样进行绘图,并且在我的图表上的
x
y
坐标处会出现一个点。

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA
import numpy
fig = plt.figure()
plt.xlabel('Width')
plt.ylabel('Height')
ax = fig.gca()
ax.plot(105, 200)
plt.grid()
plt.show()

enter image description here

python matplotlib seaborn
3个回答
123
投票

这对我有用:

plt.plot(105,200,'ro') 

27
投票
  • matplotlib.pyplot.plot
    matplotlib.axes.Axes.plot
    y
    x
    绘制为线条和/或标记。
  • ax.plot(105, 200)
    尝试画一条线,但一条线需要两个点
    • plt.plot([105, 110], [200, 210])
  • 第三个位置参数由线型、颜色和/或标记组成
    • 'o'
      只能用于绘制标记。
      • 指定
        marker='o'
        与位置参数的作用不同。
    • 'ro'
      分别指定颜色和标记
    • 如果提供了两个或多个
    • '-o'
      '-ro'
       值,
      x
      y
      将绘制一条线和标记。
  • matplotlib.pyplot.scatter
    matplotlib.axes.Axes.scatter
    也可用于添加单个或多个点
  • 已在
    python 3.10
    matplotlib 3.5.1
    seaborn 0.11.2
  • 进行测试
import matplotlib.pyplot as plt

fig, ax = plt.subplots(3, 1, figsize=(8, 10), tight_layout=True)

# single point
ax[0].plot(105, 110, '-ro', label='line & marker - no line because only 1 point')
ax[0].plot(200, 210, 'go', label='marker only')  # use this to plot a single point
ax[0].plot(160, 160, label='no marker - default line - not displayed- like OP')
ax[0].set(title='Markers - 1 point')
ax[0].legend()

# two points
ax[1].plot([105, 110], [200, 210], '-ro', label='line & marker')
ax[1].plot([105, 110], [195, 205], 'go', label='marker only')
ax[1].plot([105, 110], [190, 200], label='no marker - default line')
ax[1].set(title='Line & Markers - 2 points')
ax[1].legend()

# scatter plot
ax[2].scatter(x=105, y=110, c='r', label='One Point')  # use this to plot a single point
ax[2].scatter(x=[80, 85, 90], y=[85, 90, 95], c='g', label='Multiple Points')
ax[2].set(title='Single or Multiple Points with using .scatter')
ax[2].legend()

enter image description here

希博恩

  • seaborn
    matplotlib
    的高级 API,并提供用于绘制单点的附加选项。
  • sns.lineplot
    sns.scatterplot
    是轴级图。
  • sns.relplot
    是图形级图,带有
    kind=
    参数。
    • kind='line'
      传递到
      sns.lineplot
    • kind='scatter'
      传递到
      sns.scatterplot
  • 在以下情况下,
  • x=
    y=
    必须作为向量传递。

轴级图

sns.lineplot(x=[1], y=[1], marker='o', markersize=10, color='r')
sns.scatterplot(x=[1], y=[1], s=100, color='r')

enter image description here

图形级图

sns.relplot(kind='line', x=[1], y=[1], marker='o', markersize=10, color='r')
sns.relplot(kind='scatter', x=[1], y=[1], s=100, color='r')

enter image description here


0
投票

你可以使用

plt.scatter(x, y)

绘制点。

© www.soinside.com 2019 - 2024. All rights reserved.