python - 从 matplotlib 和方程中提取数据点(统计数据)

标签 python matplotlib statistics

我有以下运行到图表的代码,我想要的是将 X、Y 和 Z 提取到列表中(这样我可以稍后在 Excel 中复制它们,并使用数字),基本上是另一种方式围绕拥有一组数据并将其绘制成图表:

import matplotlib.pyplot as plt  
from mpl_toolkits.mplot3d import Axes3D  
from matplotlib import cm  
from matplotlib.ticker import LinearLocator, FormatStrFormatter  

import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')
N = np.arange(0, 10, 1)
M = np.arange(0, 15, 1)
N, M = np.meshgrid(N, M)
DNM = 3992.88*N - 2585.96*M

surf = ax.plot_surface(N, M, DNM, rstride=1, cstride=1, cmap=cm.jet,
        linewidth=0, antialiased=False)
ax.set_zlim(-25000, 20000)

ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

fig.colorbar(surf, shrink=0.5, aspect=10)

plt.show()

最佳答案

首先,您需要将二维数组 dnm 转换为 x-y-z 格式:

n, m = dnm.shape
rows, cols = np.mgrid[:n,:m]
xyz = np.column_stack((rows.ravel(), cols.ravel(), dnm.ravel()))

然后您可以使用 pandas 将生成的数组 xyz 写入 Excel 文件:

import pandas as pd

df = pd.DataFrame(xyz)
xyz_path = "xyz.xlsx"
df.to_excel(xyz_path, index=False)

关于python - 从 matplotlib 和方程中提取数据点(统计数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72523990/

相关文章:

python - 如何序列化/反序列化这个实体?

python - openCV imshow 随机失败

javascript - 使用pyjs : web browser won't read data from a txt file

ruby-on-rails - 与 heroku 一起工作的统计引擎

python - 如何允许用户使用 HTTP 身份验证在 Angularjs 中登录 protected flask-rest-api?

python - Tkinter:最大化 matplotlib GUI 窗口

python - 如何避免 matplotlib 中多条形图中条形之间的重叠

python - matplotlib 在简单线程中绘制卡住

c++ - 根据这些信息,类(class)中有多少学生比一个学生做得更好的算法

r - 如何在R中反转反双曲正弦变换?