【问题标题】:Plots not visible when using a line plot使用折线图时图不可见
【发布时间】:2021-01-12 03:25:32
【问题描述】:

我是 python 新手,我正在尝试绘制 x 和 y(两者都有大量数据),但是当我使用 plt.plot 时,输出中看不到绘图。

我一直使用的代码是

for i in range(len(a)):
     plt.plot(a[i],b[i])

plt.figure()
plt.show()

当我尝试散点图时

for i in range(len(a)):
     plt.scatter(a[i],b[i])

plt.figure()
plt.show()

我无法理解丢失线图的原因,即使我尝试使用 seaborn,它也会显示错误 ValueError: If using all scalar values, you must pass an index

【问题讨论】:

  • 只是 plt.plot(a,b) 没有任何 for 循环。线(和散点)图确实将列表作为输入。
  • 什么是b? b 未在您的代码 sn-p 中定义。同样对于线图,您不需要循环运行它

标签: python matplotlib plot seaborn data-analysis


【解决方案1】:
import numpy as np
import matplotlib.pyplot as plt
a = np.linspace(0,5,100)
b = np.linspace(0,10,100)
plt.plot(a,b)
plt.show()

我认为这回答了你的问题。我已经取了 a 和 b 的样本值。 matplotlib 线图不需要循环运行

【讨论】:

    【解决方案2】:

    在两点之间创建一条线。如果您正在绘制单个值,则无法构造线。

    好吧,您可能会说“但我正在绘制很多点”,这已经包含了部分答案(points)。实际上,matplotlib.plot() 绘制 line 对象。所以每次你调用plot,它都会创建一个新的(无论你是在同一个轴上还是在新轴上调用它)。你没有得到线条的原因是只绘制了单个点。您甚至没有看到这些点的原因是plot() 没有默认使用markers 表示这些点。如果你把marker='o' 加到plot() 上,你会得到和scatter 一样的数字。

    另一方面,scatter-plot 是 无序的点集合。特点是这些点之间没有线,因为它们通常不是一个序列。尽管如此,因为它们之间没有线,所以您可以一次绘制它们。默认情况下,它们具有相同的颜色,但您甚至可以指定颜色向量,以便在其中编码第三个信息。

    import matplotlib.pyplot as plt
    import numpy as np
    # create random data
    a = np.random.rand(10)
    b = np.random.rand(10)
    
    # open figure + axes
    fig,axs = plt.subplots(1,2)
    # standard scatter-plot
    axs[0].scatter(a,b)
    axs[0].set_title("scatter plot")
    # standard line-plot
    axs[1].plot(a,b)
    axs[1].set_title("line plot")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多