绘图从csv文件中乱序显示

时间:2019-07-12 17:55:05

标签: python csv matplotlib scientific-notation

我正在使用matplotlib互相绘制.csv文件的两列。 csv文件中的值未排序,并且采用科学计数法。从下面的图中可以看出,刻度标签不正确,这使我怀疑数据的绘制不正确。几乎就像每个点都绘制在单独的图形上一样,每个点都有一个刻度匹配,如果我减少点的数量,我只能减少刻度的数量。等等。

enter image description here

将csv文件读入字典

reader = csv.DictReader(open(filein),delimiter =',')

result = {}

对于阅读器中的行:     对于col_id,为row.items()中的值:         result.setdefault(col_id.strip(),[])。append(value)

如果xnam =='NUV'和ynam =='FUV':

y = result.get(ynam)
x = []
x = result.get(xnam)


print("now plotting..")


fig, ax = plt.subplots()
plt.plot(0.000044778, 0.0028774343, marker='x', markersize=3, color="red", label='G Her')
plt.errorbar(x,y, marker=".", markersize=2, fmt='co')

every_nth = 70
for n, label in enumerate(ax.xaxis.get_ticklabels()):
    if n % every_nth !=0:
       label.set_visible(False)

every1_nth = 50
for n1, label in enumerate(ax.yaxis.get_ticklabels()):
    if n1 % every1_nth !=0:
       label.set_visible(False)


plt.suptitle('FUV/NUV for Cloudy Grid')
plt.xticks(rotation=10, size = 3)
plt.yticks(rotation=80, size = 3)
plt.rcParams["font.family"] = 'serif'
plt.suptitle('FUV/NUV for Cloudy Grid')


plt.xlabel('NUV (Jy)')
plt.ylabel('FUV (Jy)')
plt.savefig('try.png', dpi=300)
plt.clf()

0 个答案:

没有答案