【问题标题】:Plot scatter graphs with matplotlib subplot使用 matplotlib 子图绘制散点图
【发布时间】:2021-10-14 09:17:50
【问题描述】:

我正在尝试绘制散点图。它将多个数组作为输入,但绘制成一个图形。 这是我的代码:

import numpy as np
import os
import matplotlib.pyplot as plt

ax = plt.gca()
n_p=np.array([17.2,25.7,6.1,0.9,0.5,0.2])   
n_d=np.array([1,2,3])
a_p=np.array([4.3,1.4,8.1,1.8,7.9,7.0])
a_d=np.array([12,13,14])

ax.scatter = ([n_d[0]/n_d[1]],[n_p[0]/n_p[1]])
ax.scatter = ([a_d[0]/a_d[1]],[a_p[0]/a_p[1]])

我将从 csv 文件中读取数组,这里我只是举一个简单的例子(为此我导入了 os)。我想绘制 n_p 的数组元素 2/元素 1 的比率(作为 x 轴)并且与 n_d (作为 y 轴)相同。这将在图中给出一个点。 a_p 和 a_d 数组将遵循类似的操作,并且该点将附加到图形中。会有更多的数据要附加,但要理解这个过程,两个就足够了。 我试图效仿here 的例子。 如果我使用颜色,我会收到语法错误。 如果我不使用颜色,我会得到一个空白图。

对不起,我的编码经验是初学者,所以代码相当讨厌。 提前致谢。

【问题讨论】:

  • ax.scatter(...) 不是ax.scatter = (...) 这是一个错字。指出 cmets 中的拼写错误,因为拼写错误的问题通常会被关闭并删除,因为它们被认为对社区没有好处。
  • 感谢@TrentonMcKinney 我已经更正了。
  • 不要更正问题,因为错字是导致错误的原因。回滚

标签: python arrays matplotlib subplot


【解决方案1】:

从函数调用中删除=

import numpy as np
import os
import matplotlib.pyplot as plt

ax = plt.gca()
n_p=np.array([17.2,25.7,6.1,0.9,0.5,0.2])   
n_d=np.array([1,2,3])
a_p=np.array([4.3,1.4,8.1,1.8,7.9,7.0])
a_d=np.array([12,13,14])

ax.scatter([n_d[0]/n_d[1]],[n_p[0]/n_p[1]])
ax.scatter([a_d[0]/a_d[1]],[a_p[0]/a_p[1]])

【讨论】:

  • 你能告诉我 ax=plt.gca() 是什么意思吗?
  • 这意味着返回当前聚焦的轴,如果不存在轴则创建一个......实际上最好使用f, ax = plt.subplots()而不是plt.gca()
猜你喜欢
  • 2018-06-23
  • 2023-03-13
  • 1970-01-01
  • 2020-07-28
  • 1970-01-01
  • 2016-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多