Page 3 of 4
Exmple de scatter plot
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from matplotlib.patches import Ellipse
import matplotlib.transforms as transforms
def draw_ellipse(x, y, sx, sy, rot, facecolor='none', **kwargs):
ellipse = Ellipse((x, y),
width=sx, height=sy,
angle=rot, facecolor=facecolor,
**kwargs)
return ax.add_patch(ellipse)
standar = pd.read_csv('all_fixed.csv')
dices = pd.read_csv('all_cnn_model-dice.csv')
mIoUs = pd.read_csv('all_cnn_model-mean_iou.csv')
Dices = np.array(dices)
MIoUs = np.array(mIoUs)
Standar = np.array(standar)
Merged = np.hstack([MIoUs, Dices[:,1:]])
fig, ax = plt.subplots()
for i,t in enumerate(['baseline', 'ibf', 'sprb', 'ibf-sprb']):
ax.scatter(Merged[:-2,i+1], Merged[:-2,i+5], label=t, s=5)
#for j in range(Merged.shape[0]):
# ax.annotate(Merged[j,0], (Merged[j,i+1], Merged[j,i+5]))
ax.scatter(Standar[:-2,1], Standar[:-2,2], label='standar', s=5, c='black', marker="^")
draw_ellipse(74.0, 84.0, 2, 8, -52, edgecolor='orange')
draw_ellipse(79.6, 88.1, 2, 6, -55, edgecolor='green')
ax.annotate("", xy=(82, 88), xytext=(78, 85), arrowprops=dict(arrowstyle="->"))
ax.annotate("kernel size", xy=(82, 88), xytext=(79, 85), rotation=25)
ax.annotate('no_initial_image_transform and baseline models',
xy=(72.58, 81.77), xycoords='data',
xytext=(70.00, 78.0),
bbox=dict(boxstyle="round", fc="0.8"),
arrowprops=dict(arrowstyle="->",
connectionstyle="angle,angleA=0,angleB=90,rad=10"))
ax.annotate('initial_image_transform',
xy=(78.52, 88.45), xycoords='data',
xytext=(72.00, 88.45),
bbox=dict(boxstyle="round", fc="0.8"),
arrowprops=dict(arrowstyle="->"))
plt.xlabel('mIoU score')
plt.ylabel('dices score')
plt.legend()
plt.tight_layout()
plt.show()