Python 3.x python如何从Excel导入的列表列表中打印?
大家好。我的任务听起来很简单,但我觉得自己很困惑。我有一个Excel文件,有五个不同的列(震级、BP1、BP2、D1、D2),每个列的行数相同(23) 输入: 五列数字数据 期望输出: 两个子地块。第一个必须包含震级与频率(将频率理解为每个震级项目从BP1到BP2的一条线)。第二个必须是大小与距离(以与上面类似的方式理解距离) 尝试编码:Python 3.x python如何从Excel导入的列表列表中打印?,python-3.x,list,Python 3.x,List,大家好。我的任务听起来很简单,但我觉得自己很困惑。我有一个Excel文件,有五个不同的列(震级、BP1、BP2、D1、D2),每个列的行数相同(23) 输入: 五列数字数据 期望输出: 两个子地块。第一个必须包含震级与频率(将频率理解为每个震级项目从BP1到BP2的一条线)。第二个必须是大小与距离(以与上面类似的方式理解距离) 尝试编码: import numpy as numpy import os, sys import os.path import pandas as pd import
import numpy as numpy
import os, sys
import os.path
import pandas as pd
import matplotlib.pyplot as plt
fname=os.path.join(workingdir, 'Frequency and BP values.xlsx')
if not os.path.isfile(fname):
sys.exit('File missing: '+fname)
f_read=pd.read_excel(fname, sheet_name='Valores')
实际产量:
绘制一条直线,它甚至与幅值不对应。它是在基准面绘制的
感谢您的时间和帮助。好的,如果我理解正确:您有一组x值和两组相应的y值(我们称它们为y1和y2)。您希望获取这些值,并为每个x从y1到y2绘制一条线。在这种情况下,您需要运行for循环。以二维列表形式编写,仅使用列表和
matplotlib.pyplot
,这就是我想到的
import matplotlib.pyplot as plt
y = [[1, 2, 3, 4, 5, 6],
[2, 4, 6, 8, 10, 12]]
x = [1, 2, 3, 4, 5, 6]
some_figure = plt.figure()
some_subplot = some_figure.add_subplot('111')
for i in range(len(x)):
some_subplot.plot([x[i], x[i]], [y[0][i], y[1][i]])
plt.show()
到底出了什么问题?我建议您隔离代码中有问题的部分,然后重新提交问题。关于使用多维列表打印,通常:(除非您正在处理)您确实不需要构造多维列表或数组来打印某些内容。奥卡姆剃须刀之类的。只需调用
plt.plot
,使用两个长度相同的独立1D列表即可。所以我不需要构建多维列表来绘制它?好的,我只调用plt.plot,这会为每个幅值绘制一条BP1和BP2之间的线吗?这就是问题所在。也许我可以给你发一张我想要的图和我的原始数据的照片。我想我现在明白这个问题了。给我一秒钟。是的,它实际上是一组Y值和两个对应的x值。非常感谢你的帮助!
import matplotlib.pyplot as plt
y = [[1, 2, 3, 4, 5, 6],
[2, 4, 6, 8, 10, 12]]
x = [1, 2, 3, 4, 5, 6]
some_figure = plt.figure()
some_subplot = some_figure.add_subplot('111')
for i in range(len(x)):
some_subplot.plot([x[i], x[i]], [y[0][i], y[1][i]])
plt.show()