You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib如何调整散点图尺寸并添加线性回归线

问题根因
  • 画布尺寸调整失效、数据显示不全:plt.figure(figsize=(10,10)) 被写在遍历数据点的for循环内部,每遍历一个点就新建一张独立画布,单张画布仅绘制1个散点,循环结束后最终展示的是最后一张仅含单个点的画布,无法看到全部数据。
  • 回归线报错:提取坐标时写了np.array[:,0],np.array是numpy的内置构造函数,不是存储数据的变量,对函数对象做切片就会触发TypeError: 'builtin_function_or_method' object is not subscriptable报错,正确的数据源是提前定义的data数组。
修正后可直接运行的代码
import matplotlib.pyplot as plt
import numpy as np

plt.close('all')

data = np.array([
    [22.8, 13.2],
    [19.6, 4.9],
    [0.3, -16.5],
    [8.9, 3.9],
    [13.7, 9.5],
    [14.7, -0.4],
    [1.9, 4.8],
    [-1.8, -11.4],
    [-3, -4.6],
    [-5.9, 2.2],
    [-13.4, -6.3],
    [-5.7, -1.7],
    [-6.8, 5],
]) 

custom_annotations = ["K464E", "K472E", "R470E", "K464A", "M155E", "K472A", "M155A", "Q539A", "M155R", "D244A", "E247A", "E247R", "D244K"]
class_colours = ["r", "r", "r", "r", "r", "r", "g", "g", "b", "b", "b", "b", "b"]

# 画布初始化移到循环外,仅创建一次,第二个参数为高度,可按需调整数值
plt.figure(figsize=(10, 12))

for i, point in enumerate(data): 
    plt.scatter(point[0], point[1], marker='o', label=custom_annotations[i], c=class_colours[i], edgecolors='black', linewidths=1, alpha=0.75)
    plt.annotate(custom_annotations[i], (data[i,0], data[i,1]))

# 绘制线性回归线
x = data[:, 0]
y = data[:, 1]
m, b = np.polyfit(x, y, 1)
# 生成x轴范围内的连续点,避免乱序原始数据导致拟合线呈折线
x_fit = np.linspace(x.min(), x.max(), 100)
plt.plot(x_fit, m*x_fit + b, color='#333333', linestyle='-', linewidth=1.5, label='线性回归线')

plt.xlabel(r'$\Delta q$', fontsize=12)
plt.ylabel(r'$\Delta  V_{0.5}$  Apo wild-type mHCN2 (mV)', fontsize=12)

plt.axvline(0, c=(.5, .5, .5), ls= '--')
plt.axhline(0, c=(.5, .5, .5), ls= '--')

plt.legend(ncol=3, loc=(1.04, 0))
# 自动调整布局,避免外置图例被截断
plt.tight_layout()
plt.show()
注意事项
  • 画布尺寸通过figsize=(宽度, 高度)控制,如需进一步增大高度,直接修改第二个参数的数值即可。
  • 回归线样式可通过修改plt.plot中的color(颜色)、linestyle(线型)、linewidth(线宽)参数自定义。
  • 原有散点配色、样本点注释、LaTeX格式坐标轴标注、中心十字参考线、外置多列图例均完整保留,未做改动。

内容的提问来源于stack exchange,提问作者sphero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 18:33:30