我有很多数据存储在Excel电子表格中,现在需要通过Python进行图形化展示。我知道如何使用xlrd从Excel文件中读取数据,并且也知道如何使用matplotlib在Python中绘制图形。我的数据包含了x坐标、y坐标以及正负y误差的列。我需要一种方法,将这些数据从电子表格中导入,并在图表上表示为点和误差线。说实话,我对Python非常陌生,不知道为什么我的代码无法正常工作。
import xlrd
import numpy as np
import matplotlib.pyplot as plt
file_location = "C:/Users/Rima/Desktop/apjl731data.xlsx"
workbook = xlrd.open_workbook(file_location)
first_sheet = workbook.sheet_by_index(0)
for col in range(first_sheet.ncols):
x = first_sheet.cell_value(0,col)
y = first_sheet.cell_value(1,col)
yerr = first_sheet.cell_value(2,col)
plt.errorbar(x,y,yerr,fmt='r^')
plt.show()
我在网上没找到如何做到这一点,只有用Python在Excel中制作图表的方法。我相信我的代码可能缺少很多东西来使其工作,但我不确定缺了什么。此外,为了在数据点顶部和底部获得不同的误差值,我一直将其作为数组传递,例如 yerr = np.array([]) 对于每个点,我都使用不同的误差值。由于我的正误差在电子表格的不同列中,我不知道如何导入数据。如果有人知道如何导入数据,请帮助我,因为这会让我的生活变得更轻松,我不必手动输入50个数据点。 谢谢!
编辑: 我的数据示例:
log(O/H)+12 正误差 负误差 银河系非静止坐标
8.56 0.05 0.05 4.61
8.59 0.03 0.03 -
8.54 0.04 0.06 2.97297
8.94 0.13 0.12 8.24493
我的数据中有缺口,用“-”标记,我不知道这是否会在绘图时出现错误。因此,我可能需要一种跳过这些行的方法。 再次感谢。
编辑2:
我仍然有一个错误,所以这是回溯。
谢谢!