import ast
from math import sqrt
import matplotlib.pyplot as plt
json_file_path01 = r'output_data.txt'
json_file_path02 = r'output_nodata.txt'
list_x,list_y = [],[]
def read_json(file_path,flag):
with open(file_path,'r',encoding='utf-8') as f:
for data in f.readlines():
dict_data = ast.literal_eval(data)
s_error = abs(dict_data.get("s_error"))
s_sim = dict_data.get("s_sim")
s_exp = dict_data.get("s_exp")
error_x = abs(dict_data.get("error_x"))
error_y = abs(dict_data.get("error_y"))
if flag == 'data':
output_data_x = s_error/max(s_sim,s_exp)
output_data_y = sqrt(error_x**2+error_y**2)/max(s_sim,s_exp)
elif flag == 'nodata':
output_data_x = error_x/max(s_sim,s_exp)
output_data_y = error_y/max(s_sim,s_exp)
list_x.append(output_data_x)
list_y.append(output_data_y)
plt.figure(figsize=(15,9),dpi=80)
plt.xlim(-0.5,1.5)
plt.ylim(-0.5,1.5)
plt.title("output_data and output_nodata",fontsize=13)
plt.xlabel('X',fontsize=12)
plt.ylabel('Y',fontsize=12)
read_json(json_file_path01,'data')
plt.scatter(list_x,list_y,c = 'r',marker='.')
list_x.clear()
list_y.clear()
read_json(json_file_path02,'nodata')
plt.scatter(list_x,list_y,c = 'g',marker='v')
plt.legend(['data','nodata'])
plt.savefig(r'C:\\output\\data.jpg')
plt.show()
