Files
ZKFC_ACC/000补偿值计算/Die1补偿数据计算.ipynb

2640 lines
1.4 MiB
Plaintext
Raw Normal View History

2025-11-23 20:43:12 +08:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "ad8424f1-4fd8-4f68-9557-f560d5a28e4b",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import sys\n",
"import os\n",
"sys.path.append('..')\n",
"from QX8800SP_DA import *\n",
"plt.rcParams['font.family'] = ['SimHei'] # 用来正常显示中文标签\n",
"plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号\n",
"pd.set_option('display.max_columns', None) #显示所有列,把行显示设置成最大\n",
"pd.set_option('display.max_rows', None) #显示所有行,把列显示设置成最大\n",
"#交互式绘图\n",
"%matplotlib widget"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "ccb60f92-e657-4732-a679-6ca67bfcf201",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MCX (96, 9)\n",
"MCY (96, 9)\n",
"Angle14 (96, 9)\n",
"RunOut (96, 9)\n",
"M1X (96, 9)\n",
"M1Y (96, 9)\n",
"M2X (96, 9)\n",
"M2Y (96, 9)\n",
"M3X (96, 9)\n",
"M3Y (96, 9)\n",
"M4X (96, 9)\n",
"M4Y (96, 9)\n",
"Angle13 (96, 1)\n",
"Note (1, 1)\n"
]
}
],
"source": [
"#写入TotalData\n",
"DieType = \"Die1\"\n",
"TotalData = pd.read_excel('../Die1AllData.xlsx',sheet_name=None,header=0,index_col = 0)\n",
"die_nums = -1\n",
"for i in TotalData:\n",
" print(i,TotalData[i].shape)"
]
},
{
"cell_type": "markdown",
"id": "8f9078d7",
"metadata": {},
"source": [
"## 对位Mark"
]
},
{
"cell_type": "markdown",
"id": "31b36a67",
"metadata": {},
"source": [
"### 对位MarkX"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "6de0e187",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>11.22.1-Die1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>87.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>-0.101438</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.251804</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-0.690213</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>-0.274311</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>-0.097847</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>0.045191</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>0.467866</td>\n",
" </tr>\n",
" <tr>\n",
" <th>range</th>\n",
" <td>1.158079</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3sigma</th>\n",
" <td>0.755412</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 11.22.1-Die1\n",
"count 87.000000\n",
"mean -0.101438\n",
"std 0.251804\n",
"min -0.690213\n",
"25% -0.274311\n",
"50% -0.097847\n",
"75% 0.045191\n",
"max 0.467866\n",
"range 1.158079\n",
"3sigma 0.755412"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# AlignMarkX = TotalData['M3X'].dropna(subset='QX8800SP_Index').set_index('QX8800SP_Index').iloc[:,die_nums:]\n",
"AlignMarkX = TotalData['MCX'].reset_index().dropna(subset='QX8800SP_Index').set_index('QX8800SP_Index').iloc[:,die_nums:].sort_index(axis=1)\n",
"AXdescibe = describe_3s(AlignMarkX)\n",
"AXdescibe"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5355743f",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\2862850051.py:6: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" ax[0].annotate(round(AXdescibe.loc['mean'][i],3),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\2862850051.py:7: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" xy=(i+1,AXdescibe.loc['mean'][i]),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\2862850051.py:8: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" xytext=(i+0.95,AXdescibe.loc['mean'][i]),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\2862850051.py:19: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" ax[1].annotate(round(AXdescibe.loc['3sigma'][i],3),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\2862850051.py:20: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" xy=(i+1,AXdescibe.loc['3sigma'][i]),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\2862850051.py:21: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" xytext=(i+0.95,AXdescibe.loc['3sigma'][i]),\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "23a50a9152b84b80ab4fe0b2faa8a41f",
"version_major": 2,
"version_minor": 0
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABtnElEQVR4nO3dd1hT1xsH8G9IwhQZ4gJRcQuIE2upe9aBdeCuWjusVWuVinVWrbu1VmvV1spPa62rtmrdWhVHXUUFRbSiFXELSBMUCBDO749IJJJAwjBivp/nyQM595z3npt7uXk5d0mEEAJEREREZDGszN0BIiIiInqxmAASERERWRgmgEREREQWhgkgERERkYVhAkhERERkYZgAEhEREVkYJoBEREREFoYJIBEREZGFYQJIRK+E7t27Y/ny5QanJycn6y1XKpXF1SUiopcWE0AieiXExMTg/v37eqclJCTA09MT3333nU75e++9h8DAwBfRPSKilwoTQCILExYWBolEAolEglKlSqFp06YIDQ3Ns25hhIaGonXr1gVqO3/+fCxZsgTfffed9rVy5Uq9dR0cHGBlpX+XtnPnTigUCtSvX1+nfMiQITh69Cg2bdqkt92MGTMgkUgwZswYbdno0aMhkUgwY8aMAi2TPhKJBGFhYUUW73m7du2CRCLB0aNHtWXfffcdZDIZ/v3332KbLxG9vGTm7gARmccvv/yCMmXK4KeffsL777+PW7du5UpqGjdujL///rvA8zh+/DhGjx6N1157rUDtL1y4AFtbW21id/nyZSQnJ2Pw4MGQy+WQyXLvwjIyMqBWq2Fra6stW7VqFWrXro0WLVogOjoaWVlZkMlkKF++PAYNGgQrKytcuXIFAJCVlQVbW1tUq1ZN2z4yMlKnTyVN165d0bBhQyxZsgQtW7aEEAJLly7FwIEDdZaTiCwHE0AiC+Xt7Y0GDRqgU6dOSEtLw9y5czFy5EiUK1dOW8fR0RFNmjQpUPydO3diwIABqFu3boH7uH79ep33n376KR48eIDOnTvjyJEjueqfPXsWM2fORL9+/bBx40YAwLlz5/DXX39hwoQJAIDBgwfjypUrkMvlOn3NlpWVhY4dO2LLli3aspxJX0lMAAFg8uTJ6N+/P27evImoqCjExMRg27Zt5u4WEZkJE0AiwocffoitW7di7969GDJkSJHEPHLkCDZv3ozTp08X+PBmaGgoKlasiC5dugDQJHO9evXCggULIJfLYW9vr63bsmVLvPnmmwgJCdE5bP3FF18A0CSzgCZJNEXTpk0RHh6OuLg4CCGQnJwMf3//Ai2POfXq1Qs1a9bEsmXLEBERgV69ehUqOSeiko3nABKR9ty4y5cv65TndQ5gREQE2rZtCzs7O1SrVg2LFy/Wmb5gwQJ07ty5UP1KTExEnz59cPr0aSQnJ+PEiRNo2bIlKlasiKioKJQqVUr7srKygrW1NVxcXODs7AwAOHToELZv3659DwCZmZmYNWsWTpw4oTOv0aNHo0mTJvjvv/90yu3s7FCjRg1cuHABkZGRqFatmk7iCQDffPONtrxBgwb4888/daa/8847eOedd3D37l0MGjQIbm5uuH79ut5lfvDgAapXr45+/fohKyurYB+cHlZWVpg0aRJWrFiBP//8E5MnTy6y2ERU8jABJCK4uroCAJKSkoyqn5iYiHbt2sHV1RV79+5FcHAwxo8fr3MxiaELMkwxYcIEhISEoFu3bli8eDHc3NxQv359nD17Fh06dMDFixcNtk1OTsawYcPQr18/nYs/ZDIZtmzZkutikjNnzsDW1lYnWcxWr149REZG4sKFC6hXr57OtPXr1yM4OBgjR47E/v370bx5cwQFBeW67cyjR48QEBCgvYDEzc0t13yUSiU6d+6M2rVrY926dbk+w4cPH+LatWtITEw0uNx5GThwIOzs7NC8eXM0atSoQDGI6NXABJCItKN8Qgij6i9duhRSqRQbNmxAq1atMHr0aLz11ltYu3ZtkfdtxowZ6Nq1Kz7//HMMGDAAAODv748uXbpgypQpBts5OjoiKCgIS5YsyTVt8ODB2Lp1K9LS0gAA6enpuHDhAnr06KE3Vr169bQjgH5+fjrTPDw8sG7dOowfPx7NmzfH+++/D4VCkWs0dceOHRgzZgzWrVuH0aNHw8nJSWe6SqVCjx49oFar8dtvv+mco5htwoQJqFmzJr766iuDy52XixcvIj4+HhEREXj06FGBYhDRq4EJIBFpR/6yRwLzk51IWFtba28p8/vvvyMmJqZY+te/f38AwNWrV7VlISEh2LFjB86dO2ew3ddff43y5cvnKh80aBAeP36M/fv3A9Bc5atSqQwess5rBLBVq1YoU6YMPvroI9SvX197fmBKSopOPW9vb4wdO9ZgX8eMGYPLly/jxo0bxXZz6lmzZqFt27YoXbq03sSYiCwHE0Ai0h5K9fHxMbpN06ZNcf78eZ1XdkJVlFQqFYKDg/HOO+/gyJEjWLVqFQDNRR+TJ09G2bJlTY5ZsWJFNGzYELt37wYAHDt2DO7u7gaXv169evjnn39w9erVXAngZ599hqCgINjb22Py5Mm4efOm3hj+/v55HhaXSCSIiIhA3bp1MW3aNL111qxZAyEE5s+fb8xi6rh06RK2bduGiRMnYsyYMVi6dCmfgkJkwZgAEhF+/PFH2Nraaq+2zY+vry/i4uJQt25dNGjQAA0aNMA///yD77//vsj7Nm7cOGRlZWH58uVYsGABxo0bh9jYWADAnDlz4OnpWaC4HTp0wJ49ewBoLnbp0KGDwbrVq1eHvb299oKQnFauXIng4GB8/fXX6NevX4GTqqVLl6J8+fJYsGABQkNDde49mO3evXu4cuUK4uPjTY4/Z84c+Pr6okOHDvjwww+RmZmJZcuWFaivRFTyMQEkslDR0dE4cOAAhgwZgk2bNuHLL780+hDwxx9/DJVKhf79++PgwYPYsGEDRo4cWSQXfmQTQuCTTz7B+vXr8dtvv8HOzg7Dhw9H3bp183zmb14yMjKQmZkJAPjoo49w+PBhpKen49ChQ2jXrp1OvZxX4FpZWcHb2xs+Pj65ltHNzQ1//vknjh49ih9//FEbJ3s+xso+569169bo2LEjgoODc9WZNGkS6tati6+//tqk2NeuXcPmzZvx6aefAgCcnJzw/vvv45tvvsl1qJqILAMTQCILNWjQIPTo0QP//vsvtm7dio8//tjotm5ubjh48CAUCgW6deuG8ePH4/3338fChQuLrH+ff/45QkNDsWPHDu2hWSsrK2zZsgVz587V1rt+/TqOHTuGmzdvau/19zy1Wg0hBEJDQyGXyyGRSFClShVUr14dNjY2ePLkCYYMGaI9n9Ha2jrXI9Lq1auX6/AvAPz0009IS0tD586dsWzZMsyfPx9ubm44fvx4gZd9/vz5CAsLw/bt2wscI6e5c+eiXLly2otoAGDs2LFISkrCDz/8UCTzIKKSRSKMveyPiOgFSklJwZUrV/K9Xcm7776L1atXw9fXF9u2bUP16tVz1WnWrBk6d+6MESNG4MGDB7C2tjYYTwiBtLQ01K1bV+dxckRErxImgERUosXHx0MIofMIu+fVrVsXPXr0wLx5815gz4iIXl5MAImIiIgsDM8BJCIiIrIwTACJiIiILAwTQCIiIiILwwSQiIiIyMIwASQiIiKyMEwAiYiIiCwME0AiIiIiC8MEkIiIiMjCMAEkIiIisjBMAImIiIgsDBNAIiIiIgvDBJCIiIjIwjABJCIiIrIwTACJiIiILAwTQCIiIiILwwSQiIiIyMIwASQiIiKyMEwAiYiIiCwME0AiIiIiC8MEkIiIiMjCMAEkInpJpKWlYcOGDebuBhFZACaARERFLCQkBE5OTkhOTtaWBQUFoWbNmlCr1Qbbffvtt/jvv/8AAFWrVoVEIoFcLkfVqlXx8ccfIyEhobi7TkQWggkgEVER+/TTT5Geno41a9YAAOLi4rBt2zZMmjQJUqlUb5tHjx7ht99+wwcffKAtGzBgAI4cOYLRo0fjp59+QsuWLZGamvoiFoGIXnFMAIm
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABtnElEQVR4nO3dd1hT1xsH8G9IwhQZ4gJRcQuIE2upe9aBdeCuWjusVWuVinVWrbu1VmvV1spPa62rtmrdWhVHXUUFRbSiFXELSBMUCBDO749IJJJAwjBivp/nyQM595z3npt7uXk5d0mEEAJEREREZDGszN0BIiIiInqxmAASERERWRgmgEREREQWhgkgERERkYVhAkhERERkYZgAEhEREVkYJoBEREREFoYJIBEREZGFYQJIRK+E7t27Y/ny5QanJycn6y1XKpXF1SUiopcWE0AieiXExMTg/v37eqclJCTA09MT3333nU75e++9h8DAwBfRPSKilwoTQCILExYWBolEAolEglKlSqFp06YIDQ3Ns25hhIaGonXr1gVqO3/+fCxZsgTfffed9rVy5Uq9dR0cHGBlpX+XtnPnTigUCtSvX1+nfMiQITh69Cg2bdqkt92MGTMgkUgwZswYbdno0aMhkUgwY8aMAi2TPhKJBGFhYUUW73m7du2CRCLB0aNHtWXfffcdZDIZ/v3332KbLxG9vGTm7gARmccvv/yCMmXK4KeffsL777+PW7du5UpqGjdujL///rvA8zh+/DhGjx6N1157rUDtL1y4AFtbW21id/nyZSQnJ2Pw4MGQy+WQyXLvwjIyMqBWq2Fra6stW7VqFWrXro0WLVogOjoaWVlZkMlkKF++PAYNGgQrKytcuXIFAJCVlQVbW1tUq1ZN2z4yMlKnTyVN165d0bBhQyxZsgQtW7aEEAJLly7FwIEDdZaTiCwHE0AiC+Xt7Y0GDRqgU6dOSEtLw9y5czFy5EiUK1dOW8fR0RFNmjQpUPydO3diwIABqFu3boH7uH79ep33n376KR48eIDOnTvjyJEjueqfPXsWM2fORL9+/bBx40YAwLlz5/DXX39hwoQJAIDBgwfjypUrkMvlOn3NlpWVhY4dO2LLli3aspxJX0lMAAFg8uTJ6N+/P27evImoqCjExMRg27Zt5u4WEZkJE0AiwocffoitW7di7969GDJkSJHEPHLkCDZv3ozTp08X+PBmaGgoKlasiC5dugDQJHO9evXCggULIJfLYW9vr63bsmVLvPnmmwgJCdE5bP3FF18A0CSzgCZJNEXTpk0RHh6OuLg4CCGQnJwMf3//Ai2POfXq1Qs1a9bEsmXLEBERgV69ehUqOSeiko3nABKR9ty4y5cv65TndQ5gREQE2rZtCzs7O1SrVg2LFy/Wmb5gwQJ07ty5UP1KTExEnz59cPr0aSQnJ+PEiRNo2bIlKlasiKioKJQqVUr7srKygrW1NVxcXODs7AwAOHToELZv3659DwCZmZmYNWsWTpw4oTOv0aNHo0mTJvjvv/90yu3s7FCjRg1cuHABkZGRqFatmk7iCQDffPONtrxBgwb4888/daa/8847eOedd3D37l0MGjQIbm5uuH79ut5lfvDgAapXr45+/fohKyurYB+cHlZWVpg0aRJWrFiBP//8E5MnTy6y2ERU8jABJCK4uroCAJKSkoyqn5iYiHbt2sHV1RV79+5FcHAwxo8fr3MxiaELMkwxYcIEhISEoFu3bli8eDHc3NxQv359nD17Fh06dMDFixcNtk1OTsawYcPQr18/nYs/ZDIZtmzZkutikjNnzsDW1lYnWcxWr149REZG4sKFC6hXr57OtPXr1yM4OBgjR47E/v370bx5cwQFBeW67cyjR48QEBCgvYDEzc0t13yUSiU6d+6M2rVrY926dbk+w4cPH+LatWtITEw0uNx5GThwIOzs7NC8eXM0atSoQDGI6NXABJCItKN8Qgij6i9duhRSqRQbNmxAq1atMHr0aLz11ltYu3ZtkfdtxowZ6Nq1Kz7//HMMGDAAAODv748uXbpgypQpBts5OjoiKCgIS5YsyTVt8ODB2Lp1K9LS0gAA6enpuHDhAnr06KE3Vr169bQjgH5+fjrTPDw8sG7dOowfPx7NmzfH+++/D4VCkWs0dceOHRgzZgzWrVuH0aNHw8nJSWe6SqVCjx49oFar8dtvv+mco5htwoQJqFmzJr766iuDy52XixcvIj4+HhEREXj06FGBYhDRq4EJIBFpR/6yRwLzk51IWFtba28p8/vvvyMmJqZY+te/f38AwNWrV7VlISEh2LFjB86dO2ew3ddff43y5cvnKh80aBAeP36M/fv3A9Bc5atSqQwess5rBLBVq1YoU6YMPvroI9SvX197fmBKSopOPW9vb4wdO9ZgX8eMGYPLly/jxo0bxXZz6lmzZqFt27YoXbq03sSYiCwHE0Ai0h5K9fHxMbpN06ZNcf78eZ1XdkJVlFQqFYKDg/HOO+/gyJEjWLVqFQDNRR+TJ09G2bJlTY5ZsWJFNGzYELt37wYAHDt2DO7u7gaXv169evjnn39w9erVXAngZ599hqCgINjb22Py5Mm4efOm3hj+/v55HhaXSCSIiIhA3bp1MW3aNL111qxZAyEE5s+fb8xi6rh06RK2bduGiRMnYsyYMVi6dCmfgkJkwZgAEhF+/PFH2Nraaq+2zY+vry/i4uJQt25dNGjQAA0aNMA///yD77//vsj7Nm7cOGRlZWH58uVYsGABxo0bh9jYWADAnDlz4OnpWaC4HTp0wJ49ewBoLnbp0KGDwbrVq1eHvb299oKQnFauXIng4GB8/fXX6NevX4GTqqVLl6J8+fJYsGABQkNDde49mO3evXu4cuUK4uPjTY4/Z84c+Pr6okOHDvjwww+RmZmJZcuWFaivRFTyMQEkslDR0dE4cOAAhgwZgk2bNuHLL780+hDwxx9/DJVKhf79++PgwYPYsGEDRo4cWSQXfmQTQuCTTz7B+vXr8dtvv8HOzg7Dhw9H3bp183zmb14yMjKQmZkJAPjoo49w+PBhpKen49ChQ2jXrp1OvZxX4FpZWcHb2xs+Pj65ltHNzQ1//vknjh49ih9//FEbJ3s+xso+569169bo2LEjgoODc9WZNGkS6tati6+//tqk2NeuXcPmzZvx6aefAgCcnJzw/vvv45tvvsl1qJqILAMTQCILNWjQIPTo0QP//vsvtm7dio8//tjotm5ubjh48CAUCgW6deuG8ePH4/3338fChQuLrH+ff/45QkNDsWPHDu2hWSsrK2zZsgVz587V1rt+/TqOHTuGmzdvau/19zy1Wg0hBEJDQyGXyyGRSFClShVUr14dNjY2ePLkCYYMGaI9n9Ha2jrXI9Lq1auX6/AvAPz0009IS0tD586dsWzZMsyfPx9ubm44fvx4gZd9/vz5CAsLw/bt2wscI6e5c+eiXLly2otoAGDs2LFISkrCDz/8UCTzIKKSRSKMveyPiOgFSklJwZUrV/K9Xcm7776L1atXw9fXF9u2bUP16tVz1WnWrBk6d+6MESNG4MGDB7C2tjYYTwiBtLQ01K1bV+dxckRErxImgERUosXHx0MIofMIu+fVrVsXPXr0wLx5815gz4iIXl5MAImIiIgsDM8BJCIiIrIwTACJiIiILAwTQCIiIiILwwSQiIiIyMIwASQiIiKyMEwAiYiIiCwME0AiIiIiC8MEkIiIiMjCMAEkIiIisjBMAImIiIgsDBNAIiIiIgvDBJCIiIjIwjABJCIiIrIwTACJiIiILAwTQCIiIiILwwSQiIiIyMIwASQiIiKyMEwAiYiIiCwME0AiIiIiC8MEkIiIiMjCMAEkInpJpKWlYcOGDebuBhFZACaARERFLCQkBE5OTkhOTtaWBQUFoWbNmlCr1Qbbffvtt/jvv/8AAFWrVoVEIoFcLkfVqlXx8ccfIyEhobi7TkQWggkgEVER+/TTT5Geno41a9YAAOLi4rBt2zZMmjQJUqlUb5tHjx7ht99+wwcffKAtGzBgAI4
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(2,1,sharex=True)\n",
"ax[0].plot([i+1 for i in range(len(AlignMarkX.columns))],AXdescibe.loc['mean'],linestyle = '-.',marker = 'o',color='b')\n",
"AlignMarkX.boxplot(ax=ax[0])\n",
"ax[0].axhline(0,c='orange',ls='-.',label=r'Mean_X:$0um\\pm0.05um$')\n",
"for i in range(len(AlignMarkX.columns)):\n",
" ax[0].annotate(round(AXdescibe.loc['mean'][i],3), \n",
" xy=(i+1,AXdescibe.loc['mean'][i]),\n",
" xytext=(i+0.95,AXdescibe.loc['mean'][i]),\n",
" fontsize=15,\n",
" color=\"r\")\n",
"ax[0].legend()\n",
"ax[0].set_title('mean_X/Day')\n",
"# labels = ax[0].get_xticklabels()\n",
"# plt.setp(labels, rotation=90)\n",
"ax[1].plot([i+1 for i in range(len(AlignMarkX.columns))],AXdescibe.loc['3sigma'],marker = 'o')\n",
"ax[1].axhline(0.8,c='orange',ls='-.',label=r'3sigma_X:$<0.800um$')\n",
"ax[1].axhline(0.5,c='green',ls='-.',label=r'3sigma_X:$<0.500um$')\n",
"for i in range(len(AlignMarkX.columns)):\n",
" ax[1].annotate(round(AXdescibe.loc['3sigma'][i],3), \n",
" xy=(i+1,AXdescibe.loc['3sigma'][i]),\n",
" xytext=(i+0.95,AXdescibe.loc['3sigma'][i]),\n",
" fontsize=15,\n",
" color=\"r\")\n",
"ax[1].legend() \n",
"ax[1].set_title('3sigam_X/Day')\n",
"labels = ax[1].get_xticklabels()\n",
"plt.setp(labels, rotation=90)\n",
"# ax[2].plot([i for i in AlignMarkX.columns],AXdescibe.loc['range'],marker = 'o')\n",
"# for i in range(len(AlignMarkX.columns)):\n",
"# ax[2].annotate(round(AXdescibe.loc['range'][i],3), \n",
"# xy=(i,AXdescibe.loc['range'][i]),\n",
"# xytext=(i,AXdescibe.loc['range'][i]),\n",
"# color=\"r\")\n",
"# ax[2].set_title('Range_X/Day')\n",
"plt.suptitle(f'{DieType}-TX')\n",
"fig.tight_layout()\n",
"plt.savefig(f'{DieType}/002000000000{DieType}-TX.jpg',dpi=200)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "64f88c9a",
"metadata": {},
"source": [
"### 对位MarkY"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "9e294f7b-3ea3-4a33-99b5-92e22bd1a827",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>11.22.1-Die1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>87.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>-0.053706</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.219475</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-0.776679</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>-0.211161</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>-0.046786</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>0.069859</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>0.587494</td>\n",
" </tr>\n",
" <tr>\n",
" <th>range</th>\n",
" <td>1.364173</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3sigma</th>\n",
" <td>0.658426</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 11.22.1-Die1\n",
"count 87.000000\n",
"mean -0.053706\n",
"std 0.219475\n",
"min -0.776679\n",
"25% -0.211161\n",
"50% -0.046786\n",
"75% 0.069859\n",
"max 0.587494\n",
"range 1.364173\n",
"3sigma 0.658426"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# AlignMarkY = TotalData['M3Y'].dropna(subset='QX8800SP_Index').set_index('QX8800SP_Index').iloc[:,die_nums:]\n",
"AlignMarkY = TotalData['MCY'].reset_index().dropna(subset='QX8800SP_Index').set_index('QX8800SP_Index').iloc[:,die_nums:].sort_index(axis=1)\n",
"AYdescibe = describe_3s(AlignMarkY)\n",
"AYdescibe"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "81162e4f-1ed2-4365-9e55-2a0177174f18",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\1710884063.py:6: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" ax[0].annotate(round(AYdescibe.loc['mean'][i],3),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\1710884063.py:7: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" xy=(i+1,AYdescibe.loc['mean'][i]),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\1710884063.py:8: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" xytext=(i+0.95,AYdescibe.loc['mean'][i]),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\1710884063.py:19: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" ax[1].annotate(round(AYdescibe.loc['3sigma'][i],3),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\1710884063.py:20: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" xy=(i+1,AYdescibe.loc['3sigma'][i]),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\1710884063.py:21: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" xytext=(i+0.95,AYdescibe.loc['3sigma'][i]),\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "b44fe71cdabc4934a7fc73bdb1b63c9f",
"version_major": 2,
"version_minor": 0
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABwSUlEQVR4nO3deVhUVR8H8O9sbIos4oKIgOKCIK6YkfuaayS4v2rmkrlgkpqmlma5lPLikpZpLq/lkrmkaWYqLrmFBopoIgHuCogDCgwwc98/RkZGZmAGGEHm+3keHphzz/ndM3Mvlx/n3nOvSBAEAURERERkNsRl3QEiIiIiermYABIRERGZGSaARERERGaGCSARERGRmWECSERERGRmmAASERERmRkmgERERERmhgkgERERkZlhAkhEFUK/fv2wevVqvcvT09N1lqelpZmqS0RE5RYTQCKqEGJjY3H//n2dy5KTk+Hq6opVq1ZplY8ePRp9+/Z9Gd0jIipXmAASmZnw8HCIRCKIRCJUrlwZrVu3xvr16wutWxLr169Hx44di9V28eLFWL58OVatWqX5Wrt2rc66lSpVglis+5C2f/9+yOVyNG3aVKt8xIgROHHiBLZv366z3bx58yASiRAcHKwpmzRpEkQiEebNm1es96SLSCRCeHh4qcV70cSJE+Hq6orc3FxNWUZGBhwdHUv1fRDRq0Na1h0gorLxww8/oGrVqti0aRPGjBmDW7duFUgGWrZsib/++qvY6zh16hQmTZqE1157rVjtL126BCsrK01id/XqVaSnp2P48OGQyWSQSgsewnJycqBUKmFlZaUpW7duHRo2bIh27dohJiYGKpUKUqkUNWrUwLBhwyAWi3Ht2jUAgEqlgpWVFerWratpHxUVpdWnV820adPw7bffYufOnRg8eDAAYNOmTVAoFJg0aVIZ946IygITQCIz1bhxYzRr1gw9evRAVlYWFi5ciAkTJqB69eqaOra2tmjVqlWx4u/fvx9DhgyBl5dXsfv4448/ar3+8MMP8eDBA/Ts2RPHjx8vUP/ChQuYP38+Bg0ahG3btgEALl68iD///BMzZswAAAwfPhzXrl2DTCbT6mselUqF7t27Y+fOnZqy/Enfq5gAenh4YMCAAQgLC8PgwYMhCAJWrFiBUaNGwcnJqay7R0RlgAkgEeG9997D7t278dtvv2HE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
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABwSUlEQVR4nO3deVhUVR8H8O9sbIos4oKIgOKCIK6YkfuaayS4v2rmkrlgkpqmlma5lPLikpZpLq/lkrmkaWYqLrmFBopoIgHuCogDCgwwc98/RkZGZmAGGEHm+3keHphzz/ndM3Mvlx/n3nOvSBAEAURERERkNsRl3QEiIiIiermYABIRERGZGSaARERERGaGCSARERGRmWECSERERGRmmAASERERmRkmgERERERmhgkgERERkZlhAkhEFUK/fv2wevVqvcvT09N1lqelpZmqS0RE5RYTQCKqEGJjY3H//n2dy5KTk+Hq6opVq1ZplY8ePRp9+/Z9Gd0jIipXmAASmZnw8HCIRCKIRCJUrlwZrVu3xvr16wutWxLr169Hx44di9V28eLFWL58OVatWqX5Wrt2rc66lSpVglis+5C2f/9+yOVyNG3aVKt8xIgROHHiBLZv366z3bx58yASiRAcHKwpmzRpEkQiEebNm1es96SLSCRCeHh4qcV70cSJE+Hq6orc3FxNWUZGBhwdHUv1fRDRq0Na1h0gorLxww8/oGrVqti0aRPGjBmDW7duFUgGWrZsib/++qvY6zh16hQmTZqE1157rVjtL126BCsrK01id/XqVaSnp2P48OGQyWSQSgsewnJycqBUKmFlZaUpW7duHRo2bIh27dohJiYGKpUKUqkUNWrUwLBhwyAWi3Ht2jUAgEqlgpWVFerWratpHxUVpdWnV820adPw7bffYufOnRg8eDAAYNOmTVAoFJg0aVIZ946IygITQCIz1bhxYzRr1gw9evRAVlYWFi5ciAkTJqB69eqaOra2tmjVqlWx4u/fvx9DhgyBl5dXsfv4448/ar3+8MMP8eDBA/Ts2RPHjx8vUP/ChQuYP38+Bg0ahG3btgEALl68iD///BMzZswAAAwfPhzXrl2DTCbT6mselUqF7t27Y+fOnZqy/Enfq5gAenh4YMCAAQgLC8PgwYMhCAJWrFiBUaNGwcnJqay7R0RlgAkgEeG9997D7t278dtvv2HE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
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(2,1,sharex=True)\n",
"ax[0].plot([i+1 for i in range(len(AlignMarkY.columns))],AYdescibe.loc['mean'],linestyle = '-.',marker = 'o',color='b')\n",
"AlignMarkY.boxplot(ax=ax[0])\n",
"ax[0].axhline(0,c='orange',ls='-.',label=r'Mean_Y:$0um\\pm0.10um$')\n",
"for i in range(len(AlignMarkY.columns)):\n",
" ax[0].annotate(round(AYdescibe.loc['mean'][i],3), \n",
" xy=(i+1,AYdescibe.loc['mean'][i]),\n",
" xytext=(i+0.95,AYdescibe.loc['mean'][i]),\n",
" fontsize=15,\n",
" color=\"r\")\n",
"ax[0].legend()\n",
"ax[0].set_title('mean_Y/Day')\n",
"labels = ax[0].get_xticklabels()\n",
"plt.setp(labels, rotation=90)\n",
"ax[1].plot([i+1 for i in range(len(AlignMarkY.columns))],AYdescibe.loc['3sigma'],marker = 'o')\n",
"ax[1].axhline(0.8,c='orange',ls='-.',label=r'3sigma_Y:$<0.800um$')\n",
"ax[1].axhline(0.5,c='green',ls='-.',label=r'3sigma_Y:$<0.500um$')\n",
"for i in range(len(AlignMarkY.columns)):\n",
" ax[1].annotate(round(AYdescibe.loc['3sigma'][i],3), \n",
" xy=(i+1,AYdescibe.loc['3sigma'][i]),\n",
" xytext=(i+0.95,AYdescibe.loc['3sigma'][i]),\n",
" fontsize=15,\n",
" color=\"r\")\n",
"ax[1].legend() \n",
"ax[1].set_title('3sigam_Y/Day')\n",
"labels = ax[1].get_xticklabels()\n",
"plt.setp(labels, rotation=90)\n",
"# ax[2].plot([i for i in AlignMarkY.columns],AYdescibe.loc['range'],marker = 'o')\n",
"# for i in range(len(AlignMarkY.columns)):\n",
"# ax[2].annotate(round(AYdescibe.loc['range'][i],3), \n",
"# xy=(i,AYdescibe.loc['range'][i]),\n",
"# xytext=(i,AYdescibe.loc['range'][i]),\n",
"# color=\"r\")\n",
"# ax[2].set_title('Range_Y/Day')\n",
"plt.suptitle('Die1 对位MarkY')\n",
"fig.tight_layout()\n",
"plt.savefig('Die1/Die1对位MarkY.jpg',dpi=200)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "57aab54c-ca77-46e9-bdfa-becc3323ab8f",
"metadata": {},
"source": [
"## 角度"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "3b9aba3d-417d-4292-ac07-8c9d25d260b8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>11.22.1-Die1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>87.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>-0.000434</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.001326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-0.006671</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>-0.000960</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>-0.000526</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>-0.000026</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>0.005232</td>\n",
" </tr>\n",
" <tr>\n",
" <th>range</th>\n",
" <td>0.011903</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3sigma</th>\n",
" <td>0.003979</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 11.22.1-Die1\n",
"count 87.000000\n",
"mean -0.000434\n",
"std 0.001326\n",
"min -0.006671\n",
"25% -0.000960\n",
"50% -0.000526\n",
"75% -0.000026\n",
"max 0.005232\n",
"range 0.011903\n",
"3sigma 0.003979"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Angle = TotalData['Angle14'].reset_index().dropna(subset='QX8800SP_Index').set_index('QX8800SP_Index').iloc[:,die_nums:].sort_index(axis=1)\n",
"Angdescibe = describe_3s(Angle)\n",
"Angdescibe"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "5ce2eec7-a959-4716-92a0-4aaad88b96b3",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\1631050127.py:6: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" ax[0].annotate(round(Angdescibe.loc['mean'][i],5),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\1631050127.py:7: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" xy=(i+1,Angdescibe.loc['mean'][i]),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\1631050127.py:8: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" xytext=(i+0.95,Angdescibe.loc['mean'][i]),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\1631050127.py:18: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" ax[1].annotate(round(Angdescibe.loc['3sigma'][i],5),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\1631050127.py:19: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" xy=(i+1,Angdescibe.loc['3sigma'][i]),\n",
"C:\\Users\\yangdongdong\\AppData\\Local\\Temp\\ipykernel_8164\\1631050127.py:20: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" xytext=(i+0.95,Angdescibe.loc['3sigma'][i]),\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "14c9b67e99d244c1a4bd8c2802b5a971",
"version_major": 2,
"version_minor": 0
},
"image/png": "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
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,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
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(2,1,sharex=True)\n",
"ax[0].plot([i+1 for i in range(len(Angdescibe.columns))],Angdescibe.loc['mean'],linestyle = '-.',marker = 'o',color='b')\n",
"Angle.boxplot(ax=ax[0])\n",
"ax[0].axhline(0,c='orange',ls='-.',label=r'Mean_Angle:$0°\\pm0.0005°$')\n",
"for i in range(len(Angle.columns)):\n",
" ax[0].annotate(round(Angdescibe.loc['mean'][i],5), \n",
" xy=(i+1,Angdescibe.loc['mean'][i]),\n",
" xytext=(i+0.95,Angdescibe.loc['mean'][i]),\n",
" fontsize=12,\n",
" color=\"r\")\n",
"ax[0].legend()\n",
"ax[0].set_title('mean_Angle/Day')\n",
"labels = ax[0].get_xticklabels()\n",
"plt.setp(labels, rotation=90)\n",
"ax[1].plot([i+1 for i in range(len(Angdescibe.columns))],Angdescibe.loc['3sigma'],marker = 'o')\n",
"ax[1].axhline(0.001,c='orange',ls='-.',label=r'3sigma_Angle:$<0.001°$')\n",
"for i in range(len(Angdescibe.columns)):\n",
" ax[1].annotate(round(Angdescibe.loc['3sigma'][i],5), \n",
" xy=(i+1,Angdescibe.loc['3sigma'][i]),\n",
" xytext=(i+0.95,Angdescibe.loc['3sigma'][i]),\n",
" fontsize=12,\n",
" color=\"r\")\n",
"ax[1].legend() \n",
"ax[1].set_title('3sigam_Angle/Day')\n",
"labels = ax[1].get_xticklabels()\n",
"plt.setp(labels, rotation=90)\n",
"# ax[2].plot([i for i in Angle.columns],Angdescibe.loc['range'],marker = 'o')\n",
"# for i in range(len(Angle.columns)):\n",
"# ax[2].annotate(round(Angdescibe.loc['range'][i],3), \n",
"# xy=(i,Angdescibe.loc['range'][i]),\n",
"# xytext=(i,Angdescibe.loc['range'][i]),\n",
"# color=\"r\")\n",
"# ax[2].set_title('Range_Angle/Day')\n",
"plt.suptitle('Die1 角度(°)')\n",
"fig.tight_layout()\n",
"plt.savefig('Die1/Die1角度.jpg',dpi=200)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "639173af",
"metadata": {},
"source": [
"### 补偿值计算"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "6e7764ef-386a-4936-84cc-72021ca594d2",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "4c806b7cea8843468d1facc4f4f90a3b",
"version_major": 2,
"version_minor": 0
},
"image/png": "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
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydeXwU9fnHP7Ozd7KbzX0REu47nEFEReQ+FbVVRGtrrRWvSrVWba2CB6I/S7VVaakHpYrYolaRSxRBUQ45EkiCECAn5D52N8neM78/Zmf23p3dbA6W7/v1onUnM99jvt/5zjPP832eh2JZlgWBQCAQCAQC4bJB0tsNIBAIBAKBQCD0LEQAJBAIBAKBQLjMIAIggUAgEAgEwmUGEQAJBAKBQCAQLjOIAEggEAgEAoFwmUEEQAKBQCAQCITLDCIAEggEAoFAIFxmEAGQQCAQCAQC4TKDCIAEAoFAIBAIlxlEACQQCAQCgUC4zCACIIFAIBAIBMJlBhEACQQCgUAgEC4ziABIIBAIBAKBcJlBBEACgUAgEAiEywwiABIIBEIU2Lt3LyiKAkVRiI+Px+TJk/H2228HPK8rvP3225g+fXqXyiAQCJc3RAAkEAiEKPL+++/jo48+wuDBg/GrX/0KK1eu9Pj7xIkT8cMPP0Rc/v79+/Hggw92sZUEAuFyhwiABAKBEEVGjhyJuXPnYtOmTbjxxhuxevVqNDQ0CH/XaDSYNGlSRGV//vnnmD9/PkaMGBGt5hIIhMsUIgASCARCN3HvvffCZrNh586dUSlv3759+M9//oPrr78+KuURCITLFyIAEggEQjcxduxYAMCpU6eEY8H2ABYWFmLGjBlQqVQYOHAgXn31VY+/v/TSS5g/f363tZdAIFw+SHu7AQQCgRCrJCUlAQBaW1tDntvc3IyZM2fiuuuuw86dO3Hy5EmsWLECGo0Gd999NwBAIiHf7AQCIToQAZBAIBC6CV7Tx7JsyHP/9re/gaZpfPDBB5DJZLj22mvx9ddfY+PGjYIASCAQCNGCCIAEAoHQTfCaP14TGIyTJ0+isbERcrnc43hmZma3tI1AIFzeEAGQQCAQuomTJ08CAEaNGiXq/MmTJ+Mf//iHxzGplCzTBAIh+pANJQQCgdBN/POf/4RSqcSCBQtCnjt69GhUVVVhxIgRGDduHMaNG4fTp0/j73//ew+0lEAgXG4QAZBAIBCiSGlpKXbv3o0777wTH374IV5++WVRJuCHHnoIFosFS5cuxVdffYUPPvgA999/P3H8IBAI3QKxLRAIBEIUuf3226FWqzF+/Hh88sknWLJkiajrUlJS8NVXX+HRRx/FokWLkJSUhF/96ld47rnnurfBBALhsoRixbinEQgEAoFAIBBiBmJbIBAIBAKBQLjMIAIggUAgEAgEwmUGEQAJBAKBQCAQLjOIAEggEAgEAoFwmUEEQAKBQCAQCITLDCIAEggEAoFAIFxmkDiAUYZhGFy8eBEajUZIBE8gEAgEAoEQTViWhdFoRFZWVkQB44kAGGUuXryInJyc3m4GgUAgEAiEy4Dq6mr069cv7OuIABhlNBoNAG5AtFptl8qy2Wz44osvMGfOHMhksmg0r8/VSfoYG3WSPobGwbA4WtGKxnYzUuOVmJiXCFoS3EpwqfXxUqiT9DE26iR9BAwGA3JycgS5I1yIABhleLOvVquNigCoVquh1Wp7dIL3ZJ2kj7FRJ+ljcHYW12LV1lLU6s3CscwEJZ5ZPBLzRmd2S52RQMYxNuokfYyNOsXWF+l2M+IEEsM4GBYHzjXj08ILOHCuGQ6GZP0jEHqancW1uO+9Yx7CHwDU6c24771j2Flc20stIxAIlzNEAxijRKpxIBAI0cPBsFi1tRT+Pr1YABSAVVtLMXtkRkhzMIFAIEQTogGMQYjGgUDoGxwub/F5Dt1hAdTqzThc3tJzjSIQCMRCBqIBjDmIxoFA6Ds0GAMLf5GcRyAQug6xkHHEvAawuLgYBQUFSExMxGOPPQaWFS/l22w2jBkzBnv37u2+BkYZonEgEPoOaRplVM8jEAhdg1jIXMS0AGixWLB48WJMnDgRR44cQWlpKTZs2CD6+pdffhnFxcXd18BugGgcCJcDDobFofIWHG2icKi8pc+abyYPSEJmQmDhjgKneZg8IKnnGkUgXKaEspABnIWsr64n0SamBcAdO3ZAr9dj7dq1GDRoEFavXo23335b1LVlZWV45ZVXkJeX172NjDJE40CIdXYW1+Lql/bgjneOYGMZjTveOYKrX9rTJ7/caQmFpxeN9Ps3fgPGM4tHku0YBEIPQCxknsS0AFhUVIQpU6ZArVYDAPLz81FaWirq2nvvvRdPPPEEcnNzu7OJUYfXOAR6nRCNA+FS5lI03ySo/cfvykhQYt0dEy6rPUcEQm9CLGSexLQTiMFgwIABA4TfFEWBpmm0trYiMTEx4HXvvvsu9Ho9Hn30UezYsSNoHRaLBRaLxaNOgNs/aLPZutR+/vpwy/nj/GF4aHORz3HK7e+Mww7GEb06I6Wn6+uNOkkfo4ODYbHys5IQDk4lmD4kuVs0apH28bUvzwAAlk3uh/6JaqzZdQZZCUrseeQa0BIqaHmxOI69XSfpY2zUGUl9yWpxIk+yWuq33L7Wx662g2LD8Yq4xHj88cdhs9mwdu1a4VhOTg4OHjyI7Oxsv9c0NjZizJgx2LlzJ8aNG4fp06dj5cqVmD59ut/zV65ciVWrVvkc37Rpk6B57A2KmilsPi9Bp931ItTJWdyUx2BscswOOSGGKdNTeL2UDnnegyMdGJLQu3OcYYFzBgplBmBXDQ0JWDw9wYFOO/DyCSniZSxemOTnC4xAIHQbDAusOkajzQrAr52MhU4OPDPBgUthV0ZnZyeWLVsGvV4fUeaxmNYAJiUl+ThxGI1GyOXygNesWLECd999N8aNGyeqjieffBKPPPKI8JvPzTdnzpyopILbvXs3Zs+eHXbamQUA0r6rwJqdnPaBArDv8VlQy4O/QMXW6WBYHKlsRYPRgjSNApNyQ+c17Up90aSn6yR9jA5bT9QCpSdDnjdw1DgsyI++WVVsH3eV1OPF7T+izuCyDChkUqQMHYdxOQl4+cQ3MDkkmDdvDiQicgHH2jj2dp2kj7FRZ6T1yfLqBQuZ+2ci5fzf528ai7mj0qNaZ6SEqo+3OEZKTAuABQUFeOutt4TfFRUVsFgsSEoKvP9t06ZN0Gg0eOONNwAA7e3tWLRoEZ566ik88cQTPucrFAooFAqf4zKZLGoTJNKyWk124b9ZAI0ddgyOE+f8EazO7oihFM371VfrJH3sGpm6ONHndWefQz0bD20u8jFTm2wOPLS5CH+9bTwA7gPK5AB0CnHtjKVx7Ct1kj7GRp3h1rdoXD9IpbTPOywjjHdYX+ljV9sQ004g06ZNg16vx8aNGwEAa9aswaxZs0DTNAwGg1/7eXl5OU6cOIHCwkIUFhZi0qRJeOutt7B8+fKebn6XaTRaPH5XNnd0ucxLcRM+ITbo6w5OwUJM8KzefgrxTi18c4e1ZxpGIBA8mDc6E189eq3Hsf8uv/Kyc8iKaQFQKpVi/fr1WL58OdLT07FlyxasWbMGAOcRvG3bNp9r8vLyPP4plUpkZGRAp9P1cOu7Di8A8lam8qauCYAkhhKhN6ElFJ5Z3HdDqogNMRGn5AwvLUQAJBB6DaPZ7vG7qf3yex5j2gQMAEuWLEFZWRmOHDmCqVOnIjU1FQBnDhbDpZQFxBteAByZpUXxBQMqmzu7VF44MZSuHJTcpboIBH/MG52JdXdMwH3vH4O7+1o45pvuQmzoCKWM0wASAZBA6D28n786vRnI6aXG9BIxLwACQHZ2dkCv31iGFwAL8pJQfMGAii6agEkMJUJfYOrgFA/h76UbR+EnBbm9HkxZbHD1ZLUclc2dRAAkEHqRVq/n73J8b8W0CfhyxuZghD1Gk/O4PVFdFQBJlhFCX6C6xVOTnZ2o6nXhDxC/R3FgKufMQgRAAqH3aO309AGoNxABkBAjNDv3M9A
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# BC_X = pd.concat([AlignMarkX[i]-AlignMarkX[i].mean() for i in AlignMarkX.columns[-2:]],axis=1)\n",
"fig, ax = plt.subplots(3,1,sharex=True)\n",
"\n",
"BC_X = pd.concat([AlignMarkX[i] for i in AlignMarkX.columns[-3:]],axis=1)\n",
"BC_X.plot(ax=ax[0],marker='o')\n",
"Mean_TX=BC_X.stack().mean()\n",
"ax[0].set_title(f'{DieType}')\n",
"ax[0].set_ylabel('TX/um')\n",
"ax[0].xaxis.set_major_locator(MultipleLocator(5))\n",
"ax[0].yaxis.set_major_locator(MultipleLocator(0.2))\n",
"ax[0].axhline(Mean_TX,c='orange',ls='-.',label=r'Mean_TX: ${:.4f}±0.3um$'.format(Mean_TX))\n",
"ax[0].axhline(Mean_TX+0.3,c='green',ls='-.')\n",
"ax[0].axhline(Mean_TX-0.3,c='green',ls='-.')\n",
"ax[0].legend()\n",
"ax[0].grid()\n",
"\n",
"plt.subplot(312)\n",
"BC_Y = pd.concat([AlignMarkY[i] for i in AlignMarkY.columns[-3:]],axis=1)\n",
"BC_Y.plot(ax=ax[1],marker='o')\n",
"Mean_TY=BC_Y.stack().mean()\n",
"ax[1].set_ylabel('TY/um')\n",
"ax[1].xaxis.set_major_locator(MultipleLocator(5))\n",
"ax[1].yaxis.set_major_locator(MultipleLocator(0.2))\n",
"ax[1].axhline(Mean_TY,c='orange',ls='-.',label=r'Mean_TY: ${:.4f}±0.3um$'.format(Mean_TY))\n",
"ax[1].axhline(Mean_TY+0.3,c='green',ls='-.')\n",
"ax[1].axhline(Mean_TY-0.3,c='green',ls='-.')\n",
"ax[1].legend()\n",
"ax[1].grid()\n",
"\n",
"plt.subplot(313)\n",
"BC_A = pd.concat([Angle[i] for i in Angle.columns[-3:]],axis=1)\n",
"BC_A.plot(ax=ax[2],marker='o')\n",
"ax[2].set_ylabel('Angle/°')\n",
"ax[2].xaxis.set_major_locator(MultipleLocator(5))\n",
"ax[2].yaxis.set_major_locator(MultipleLocator(0.001))\n",
"ax[2].grid()\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 78,
"id": "7c0d903f-fbee-468c-901a-c50652c4b6dd",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "522c79d11c834ec4a9d884201e625d23",
"version_major": 2,
"version_minor": 0
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9eZwU9Z3//6qqrj5mpueCGWYGEEbAAxGNCsGLqFFAUGKOzWJiEv2abNRdIz9XoyZmjZtNoknWmNOERGPURGM0BxpE2ChRowYVISCHiNwMDMzVPTN9V/3++Hw+VZ+qruqunumeo+fzfDy06Zrq6uq6Pq/P+5R0XdchEAgEAoFAIBgzyMO9AwKBQCAQCASCoUUIQIFAIBAIBIIxhhCAAoFAIBAIBGMMIQAFAoFAIBAIxhhCAAoEAoFAIBCMMYQAFAgEAoFAIBhjCAEoEAgEAoFAMMYQAlAgEAgEAoFgjCEEoEAgEAgEAsEYQwhAgUAgEAgEgjGGEIACgUAgEAgEYwwhAAUCgUAgEAjGGEIACgQCgUAgEIwxhAAUCAQCgUAgGGMIASgQCAQCgUAwxhACUCAQCAQCgWCMIQSgQCAQCAQCwRhDCECBQCAQCASCMYYQgAKBQCAQCARjDCEABQKBQCAQCMYYQgAKBAKBQCAQjDGEABQIBAKBQCAYYwgBKBAIBAKBQDDGEAJQIBAIBAKBYIwhBKBAIBAIBALBGEMIQIFAIBAIBIIxhhCAAoFAIBAIBGMMIQAFAoFAIBAIxhhCAAoEAoFAIBCMMYQAFAgEAoFAIBhjCAEoEAgEAoFAMMYQAlAgEAgEAoFgjCEEoEAgEAgEAsEYQwhAgUAgEAgEgjGGEIACgUBQYjo6OkbVdgUCQfkjBKBAIBCUkEceeQSnnXYaYrFYUbe7fv16nHLKKdi8eXNRtysQCMYGQgAKBIKisG7dOkiSBEmSUFVVhblz5+LBBx90XW8wPPjgg7jgggsK/tzVV19t7KP9vz179uC73/0uKisr0dnZaXxG13WcfPLJuPrqqwv+vieeeAJf/vKX8cc//hGhUKjgz+di7ty5+PrXv44Pf/jDeO+994q6bYFAUP4IASgQCIrKb37zGzz99NOYPn06Pv/5z+PrX/+65e9nnnkm3njjjQFv/5VXXsF//Md/DOizX//61/HGG28Y33/zzTcb71taWnDddddBVVWsWLHC+Mzq1auxY8cO3HrrrQV913vvvYd///d/x8qVKzFnzpwB7W8+rrvuOtxyyy1YtmwZkslkSb5DIBCUJ5Ku6/pw74RAIBj9rFu3DhdeeCHefvttnH766QCAj33sY3j22Wdx4MABNDY2Dvo7nn32WVx55ZWYMWMGqqursW7dugFvS5IkfP/738fy5csty++44w489thj2L17N3w+HxYuXAhVVfHss88WtP1PfOITOP3003HnnXcOeB+9oOs6LrzwQlx55ZX44he/WNLvEggE5YOwAAoEgpLxxS9+EalUCqtXry7K9v72t7/hySefxNKlS4uyPSduuukmHD16FL///e+xdetWrFmzBrfddltB2zh06BBWr16NG264oUR7aSJJEpYvX46f/vSnJf8ugUBQPggBKBAISsZpp50GANi2bZuxLFcM4MaNG3HRRRchFArh+OOPx/3332/5+7333otLL73U8bO6riOdTrv+55WmpiZ87nOfw/3334/7778f8+bNw/nnn+/58wDw1ltv4ayzzkJ9fX3W3/bs2WPEHPJIkoR169bh61//Os477zxce+21qKiowB133IH//u//RlVVFRYsWOD4WxYvXowtW7YUPdFEIBCUL0IACgSCksEEUFdXV951Ozo68OEPfxj19fVYvXo1br75Ztxyyy2WRBJZdn9k/frXv4aqqq7/FcItt9yCN998Ew899BC+/OUvF/RZANi3bx8mTpxY8OcYf//739Ha2oobb7wR99xzD/75z39ixYoVWLt2Ld5+++2s9f1+P8aNG4f9+/cP+DsFAsHYwjfcOyAQCMoXZunzEmr8ox/9CIqi4PHHH4eqqvjQhz6EF198EY888giuvfbavJ9funSpozgaCDNmzMCiRYuwefNmfOQjHyn4836/H9FodFDff+edd+LFF1/Ed77zHfzwhz9Ec3MzPv3pT6Ovry9rfV3X0dvbC7/fP+DvFAgEYwshAAUCQclglj8nV6idzZs34+jRo1kiprm52dN31dfXe/oerzQ0NKC+vj6n1dGNE044AVu2bPG8vqZplvctLS0ATAHN3ruxa9cuSJKEyZMnF7inAoFgrCIEoEAgKBmsSPEpp5ziaf25c+fi5z//uWWZzzf6HlNnn302uru78cILL+Ciiy7Ku/5gXbcPPvggFixYAEVRBrUdgUAwdhAxgAKBoGT84he/QDAYxOLFi/OuO2vWLOzbtw8nn3wyTj/9dJx++unYsWMHfvaznw3BnhYXv9+PG2+8EbfddltWfT4maPv7+41lTz755IC/67333sNPf/pT3HzzzQPehkAgGHsIASgQCIrK1q1bsXbtWnz2s5/F7373O3znO9/x5Jq98cYbkUgksGzZMvz1r3/F448/jhtuuGFALtiRwO23345YLIZ///d/t8RAtrS0YPz48fjlL3+JTCaDv/zlLwMWuV1dXfjEJz6BZcuWFZypLBAIxjaj88kqEAhGLJ/+9KdxxRVX4P3338cf//hH3HjjjZ4+N378ePz1r39FT08PLrvsMtxyyy34/Oc/j+9973sl3uPSEAqF8Mwzz2Dt2rX413/9V6N8iyzLePTRR/HnP/8ZtbW1+M53voNnnnmm4O0fPHgQ5557LlpaWvCjH/2o2LsvEAjKHNEJRCAQCEpIW1sbHn/88aK7aHt7e/GjH/0It9xyS8FlbgQCgUAIQIFAIBAIBIIxhnABCwQCgUAgEIwxhAAUCAQCgUAgGGMIASgQCAQCgUAwxhACUCAQCAQCgWCMIQSgQCAQCAQCwRhDCECBQCAQCASCMcboa7I5gtA0DYcOHUI4HDaatgsEAoFAIBjZ6LqOaDSKlpaWUdttaLAIATgIDh06hMmTJw/3bggEAoFAIBgA+/fvx6RJk4Z7N4YFIQAHQTgcBkAuoOrq6gFtI5VKYc2aNViwYIGo5j9CEedo5CPO0chHnKORz1g6R5FIBJMnTzbG8bGIEICDgLl9q6urByUAKyoqUF1dXfY33GhFnKORjzhHIx9xjkY+Y/EcjeXwrbHp+BYIBAKBQCAYwwgBKBAIBAKBQDDGEAJQIBAIBAKBYIwhYgBLjK7rSKfTyGQyjn9PpVLw+XyIx+Ou6wiGl2KdI0VR4PP5xnTMiUAgEAhGBkIAlpBkMom2tjb09/e7rqPrOpqamrB//34hDEYoxTxHFRUVaG5uht/vL9LeCQQCgUBQOEIAlghN07B7924oioKWlhb4/X5H8aBpGnp7e1FVVTVmi1GOdIpxjnRdRzKZxNGjR7F7927MmDFDnG+BQCAQDBtCAJaIZDIJTdMwefJkVFRUuK6naRqSySSCwaAQBCOUYp2jUCgEVVWxd+9eY3sCgUAgEAwHQnGUGCHqBDziehAIBALBSECMRgKBQCAQjHW0DKS9r2Bi52uQ9r4CaCIpsdwRLuARTkbTsX53J9qjcTSGg5jbWg9FFskiAoFAICgSW1cCq2+DL3IIZwHA3geA6hZg0b3AzKXDvXeCEiEsgCOY1VvacN69L+DKX7yOm57YiCt/8TrOu/cFrN7SVvLv7ujoQGtrK/bs2eNpeS5WrFiB5uZmqKqKBQsWoK3N3P+//e1vOPnkkzF+/Hjcd999Be3ja6+9hhNPPNHz+ldffTUkSUIgEMCsWbPw0EMPZa3z8MMP44ILLihoPwDgqaeewoUXXljw5wQCgWBY2boSePKzQOSQdXmkjSzfunJ49ktQcoQAHKGs3tKG6x/bgLaeuGX54Z44rn9sQ0lF4LFjx3DZZZdliTy35bl45ZVX8LWvfQ2PPvoodu/ejXg8jltuuQUAcPToUSxduhRXXnklXnvtNfzmN7/Biy++6Gm7GzZswEc/+lEkEgnP+wIA1113HXbs2IE
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9eZwU9Z3//6qqrj5mpueCGWYGEEbAAxGNCsGLqFFAUGKOzWJiEv2abNRdIz9XoyZmjZtNoknWmNOERGPURGM0BxpE2ChRowYVISCHiNwMDMzVPTN9V/3++Hw+VZ+qruqunumeo+fzfDy06Zrq6uq6Pq/P+5R0XdchEAgEAoFAIBgzyMO9AwKBQCAQCASCoUUIQIFAIBAIBIIxhhCAAoFAIBAIBGMMIQAFAoFAIBAIxhhCAAoEAoFAIBCMMYQAFAgEAoFAIBhjCAEoEAgEAoFAMMYQAlAgEAgEAoFgjCEEoEAgEAgEAsEYQwhAgUAgEAgEgjGGEIACgUAgEAgEYwwhAAUCgUAgEAjGGEIACgQCgUAgEIwxhAAUCAQCgUAgGGMIASgQCAQCgUAwxhACUCAQCAQCgWCMIQSgQCAQCAQCwRhDCECBQCAQCASCMYYQgAKBQCAQCARjDCEABQKBQCAQCMYYQgAKBAKBQCAQjDGEABQIBAKBQCAYYwgBKBAIBAKBQDDGEAJQIBAIBAKBYIwhBKBAIBAIBALBGEMIQIFAIBAIBIIxhhCAAoFAIBAIBGMMIQAFAoFAIBAIxhhCAAoEAoFAIBCMMYQAFAgEAoFAIBhjCAEoEAgEAoFAMMYQAlAgEAgEAoFgjCEEoEAgEAgEAsEYQwhAgUAgEAgEgjGGEIACgUBQYjo6OkbVdgUCQfkjBKBAIBCUkEceeQSnnXYaYrFYUbe7fv16nHLKKdi8eXNRtysQCMYGQgAKBIKisG7dOkiSBEmSUFVVhblz5+LBBx90XW8wPPjgg7jgggsK/tzVV19t7KP9vz179uC73/0uKisr0dnZaXxG13WcfPLJuPrqqwv+vieeeAJf/vKX8cc//hGhUKjgz+di7ty5+PrXv44Pf/jDeO+994q6bYFAUP4IASgQCIrKb37zGzz99NOYPn06Pv/5z+PrX/+65e9nnnkm3njjjQFv/5VXXsF//Md/DOizX//61/HGG28Y33/zzTcb71taWnDddddBVVWsWLHC+Mzq1auxY8cO3HrrrQV913vvvYd///d/x8qVKzFnzpwB7W8+rrvuOtxyyy1YtmwZkslkSb5DIBCUJ5Ku6/pw74RAIBj9rFu3DhdeeCHefvttnH766QCAj33sY3j22Wdx4MABNDY2Dvo7nn32WVx55ZWYMWMGqqursW7dugFvS5IkfP/738fy5csty++44w489thj2L17N3w+HxYuXAhVVfHss88WtP1PfOITOP3003HnnXcOeB+9oOs6LrzwQlx55ZX44he/WNLvEggE5YOwAAoEgpLxxS9+EalUCqtXry7K9v72t7/hySefxNKlS4uyPSduuukmHD16FL///e+xdetWrFmzBrfddltB2zh06BBWr16NG264oUR7aSJJEpYvX46f/vSnJf8ugUBQPggBKBAISsZpp50GANi2bZuxLFcM4MaNG3HRRRchFArh+OOPx/3332/5+7333otLL73U8bO6riOdTrv+55WmpiZ87nOfw/3334/7778f8+bNw/nnn+/58wDw1ltv4ayzzkJ9fX3W3/bs2WPEHPJIkoR169bh61//Os477zxce+21qKiowB133IH//u//RlVVFRYsWOD4WxYvXowtW7YUPdFEIBCUL0IACgSCksEEUFdXV951Ozo68OEPfxj19fVYvXo1br75Ztxyyy2WRBJZdn9k/frXv4aqqq7/FcItt9yCN998Ew899BC+/OUvF/RZANi3bx8mTpxY8OcYf//739Ha2oobb7wR99xzD/75z39ixYoVWLt2Ld5+++2s9f1+P8aNG4f9+/cP+DsFAsHYwjfcOyAQCMoXZunzEmr8ox/9CIqi4PHHH4eqqvjQhz6EF198EY888giuvfbavJ9funSpozgaCDNmzMCiRYuwefNmfOQjHyn4836/H9FodFDff+edd+LFF1/Ed77zHfzwhz9Ec3MzPv3pT6Ovry9rfV3X0dvbC7/fP+DvFAgEYwshAAUCQclglj8nV6idzZs34+jRo1kiprm52dN31dfXe/oerzQ0NKC+vj6n1dGNE044AVu2bPG8vqZplvctLS0ATAHN3ruxa9cuSJKEyZMnF7inAoFgrCIEoEAgKBmsSPEpp5ziaf25c+fi5z//uWWZzzf6HlNnn302uru78cILL+Ciiy7Ku/5gXbcPPvggFixYAEVRBrUdgUAwdhAxgAKBoGT84he/QDAYxOLFi/OuO2vWLOzbtw8nn3wyTj/9dJx++unYsWMHfvaznw3BnhYXv9+PG2+8EbfddltWfT4maPv7+41lTz755IC/67333sNPf/pT3HzzzQPehkAgGHsIASgQCIrK1q1bsXbtWnz2s5/F7373O3znO9/x5Jq98cYbkUgksGzZMvz1r3/F448/jhtuuGFALtiRwO23345YLIZ///d/t8RAtrS0YPz48fjlL3+JTCaDv/zlLwMWuV1dXfjEJz6BZcuWFZypLBAIxjaj88kqEAhGLJ/+9KdxxRVX4P3338cf//hH3HjjjZ4+N378ePz1r39FT08PLrvsMtxyyy34/Oc/j+9973sl3uPSEAqF8Mwzz2Dt2rX413/9V6N8iyzLePTRR/HnP/8ZtbW1+M53voNnnnmm4O0fPHgQ5557LlpaWvCjH/2o2LsvEAjKHNEJRCAQCEpIW1sbHn/88aK7aHt7e/GjH/0It9xyS8FlbgQCgUAIQIFAIBAIBIIxhnABCwQCgUAgEIwxhAAUCAQCgUAgGGMIASgQCAQCgUAwxhACUCAQCAQCgWCMIQSgQCAQCAQCwRhDCECBQCAQCASCMcboa7I5gtA0DYcOHUI4HDaatgsEAoFAIBjZ6LqOaDSKlpaWUdttaLAIATgIDh06hMmTJw/3bggEAoFAIBgA+/fvx6RJk4Z7N4YFIQAHQTgcBkAuoOrq6gFtI5VKYc2aNViwYIGo5j9CEedo5CPO0chHnKORz1g6R5FIBJMnTzbG8bGIEICDgLl9q6urByUAKyoqUF1dXfY33GhFnKORjzhHIx9xjkY+Y/EcjeXwrbHp+BYIBAKBQCAYwwgBKBAIBAKBQDDGEAJQIBAIBAKBYIwhYgBLjK7rSKfTyGQyjn9PpVLw+XyIx+Ou6wiGl2KdI0VR4PP5xnTMiUAgEAhGBkIAlpBkMom2tjb09/e7rqPrOpqamrB//34hDEYoxTxHFRUVaG5uht/vL9LeCQQCgUBQOEIAlghN07B7924oioKWlhb4/X5H8aBpGnp7e1FVVTVmi1GOdIpxjnRdRzKZxNGjR7F7927MmDFDnG+BQCAQDBtCAJaIZDIJTdMwefJkVFRUuK6naRqSySSCwaAQBCOUYp2jUCgEVVWxd+9eY3sCgUAgEAwHQnGUGCHqBDziehAIBALBSECMRgKBQCAQjHW0DKS9r2Bi52uQ9r4CaCIpsdwRLuARTkbTsX53J9qjcTSGg5jbWg9FFskiAoFAICgSW1cCq2+DL3IIZwHA3geA6hZg0b3AzKXDvXeCEiEsgCOY1VvacN69L+DKX7yOm57YiCt/8TrOu/cFrN7SVvLv7ujoQGtrK/bs2eNpeS5WrFiB5uZmqKqKBQsWoK3N3P+//e1vOPnkkzF+/Hjcd999Be3ja6+9hhNPPNHz+ldffTUkSUIgEMCsWbPw0EMPZa3z8MMP44ILLihoPwDgqaeewoUXXljw5wQCgWBY2boSePKzQOSQdXmkjSzfunJ49ktQcoQAHKGs3tKG6x/bgLaeuGX54Z44rn9sQ0lF4LFjx3DZZZdliTy35bl45ZVX8LWvfQ2PPvoodu/ejXg8jltuuQUAcPToUSxduhRXXnklXnvtNfzmN7/Biy+
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# BC_Y = pd.concat([AlignMarkY[i]-AlignMarkY[i].mean() for i in AlignMarkY.columns[-3:]],axis=1)\n",
"BC_Y = pd.concat([AlignMarkY[i] for i in AlignMarkY.columns[-4:]],axis=1)\n",
"BC_Y.plot(marker='o')\n",
"plt.title(f'{DieType}-TYum')\n",
"# plt.ylim(-1.5,1.5)\n",
"plt.grid()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 79,
"id": "a94845fc-49f0-41a1-99a0-b5f5cdff1a69",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "a10576cafe4c41f19e1267cf0e3524d8",
"version_major": 2,
"version_minor": 0
},
"image/png": "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
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,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
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# BC_A = pd.concat([Angle[i]-Angle[i].mean() for i in Angle.columns[-3:]],axis=1)\n",
"BC_A = pd.concat([Angle[i] for i in Angle.columns[-4:]],axis=1)\n",
"BC_A.plot(marker='o')\n",
"plt.title(f'{DieType}-角度(°)')\n",
"# plt.ylim(-0.01,0.01)\n",
"plt.grid()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "d336338b",
"metadata": {},
"outputs": [],
"source": [
"# (((5214.129 + 6115.212)/2)**2 + ((6217.542-6191.258)/2)**2)**0.5\n",
"# ((5348.967+6115.212)**2+(6246.277-6191.258)**2)**0.5*0.5\n",
"# 68*np.sin(0.009*np.pi/180)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "793514cb",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "b8d08d65",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 13,
"id": "f2ae7ed6-c025-4390-8bd1-4e3b82783c36",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>TX</th>\n",
" <th>TY</th>\n",
" <th>Angle</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Index</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>-0.409902</td>\n",
" <td>-0.776679</td>\n",
" <td>0.005192</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>-0.203918</td>\n",
" <td>-0.129108</td>\n",
" <td>-0.000114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>-0.073236</td>\n",
" <td>-0.121481</td>\n",
" <td>0.005232</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.096503</td>\n",
" <td>0.209221</td>\n",
" <td>-0.000937</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.273773</td>\n",
" <td>0.139064</td>\n",
" <td>-0.000861</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>-0.142581</td>\n",
" <td>-0.107635</td>\n",
" <td>-0.001276</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.250407</td>\n",
" <td>0.216071</td>\n",
" <td>0.000796</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.283372</td>\n",
" <td>0.282304</td>\n",
" <td>-0.000401</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>-0.050282</td>\n",
" <td>-0.206942</td>\n",
" <td>0.000466</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>-0.260444</td>\n",
" <td>-0.093724</td>\n",
" <td>0.000294</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>-0.250819</td>\n",
" <td>-0.226583</td>\n",
" <td>-0.000273</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>-0.109851</td>\n",
" <td>-0.230295</td>\n",
" <td>-0.000197</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>-0.230497</td>\n",
" <td>-0.247708</td>\n",
" <td>-0.000582</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>-0.167045</td>\n",
" <td>-0.088239</td>\n",
" <td>-0.001976</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>-0.102966</td>\n",
" <td>-0.381232</td>\n",
" <td>-0.000696</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>-0.446168</td>\n",
" <td>-0.330277</td>\n",
" <td>0.000714</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>-0.484288</td>\n",
" <td>-0.479581</td>\n",
" <td>-0.000409</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>-0.360113</td>\n",
" <td>-0.158104</td>\n",
" <td>-0.001082</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>-0.181156</td>\n",
" <td>0.096852</td>\n",
" <td>-0.000524</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>-0.233258</td>\n",
" <td>-0.224020</td>\n",
" <td>-0.000133</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>-0.517945</td>\n",
" <td>-0.216442</td>\n",
" <td>0.000353</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>-0.430855</td>\n",
" <td>-0.264084</td>\n",
" <td>0.001317</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>0.062101</td>\n",
" <td>0.049123</td>\n",
" <td>-0.000954</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>0.220201</td>\n",
" <td>0.587494</td>\n",
" <td>-0.001033</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>0.216040</td>\n",
" <td>0.254438</td>\n",
" <td>-0.000174</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>-0.012568</td>\n",
" <td>-0.161507</td>\n",
" <td>0.000632</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>-0.519328</td>\n",
" <td>-0.211937</td>\n",
" <td>0.000066</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>-0.404652</td>\n",
" <td>-0.318270</td>\n",
" <td>-0.001067</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>-0.256579</td>\n",
" <td>0.170104</td>\n",
" <td>-0.000393</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>0.302335</td>\n",
" <td>0.459654</td>\n",
" <td>-0.000876</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>-0.068923</td>\n",
" <td>-0.118727</td>\n",
" <td>-0.001269</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>-0.684872</td>\n",
" <td>-0.395559</td>\n",
" <td>-0.000054</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>-0.254463</td>\n",
" <td>-0.398948</td>\n",
" <td>-0.000226</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>-0.008502</td>\n",
" <td>-0.091239</td>\n",
" <td>-0.000839</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>0.411253</td>\n",
" <td>0.096365</td>\n",
" <td>-0.000279</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>-0.274174</td>\n",
" <td>-0.174526</td>\n",
" <td>-0.000895</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>-0.081601</td>\n",
" <td>-0.068508</td>\n",
" <td>-0.000247</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>-0.385736</td>\n",
" <td>-0.210386</td>\n",
" <td>-0.000571</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>-0.619088</td>\n",
" <td>-0.305331</td>\n",
" <td>-0.000664</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>0.000690</td>\n",
" <td>-0.029939</td>\n",
" <td>-0.000561</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>-0.337677</td>\n",
" <td>-0.266693</td>\n",
" <td>0.000135</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>0.255367</td>\n",
" <td>0.073167</td>\n",
" <td>0.000862</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>0.550813</td>\n",
" <td>0.407205</td>\n",
" <td>-0.000839</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>-0.134835</td>\n",
" <td>-0.017286</td>\n",
" <td>-0.001762</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>0.380252</td>\n",
" <td>0.001851</td>\n",
" <td>-0.001831</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>0.170431</td>\n",
" <td>0.019626</td>\n",
" <td>-0.002080</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>-0.090272</td>\n",
" <td>-0.131151</td>\n",
" <td>-0.001428</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>0.101356</td>\n",
" <td>0.054044</td>\n",
" <td>-0.000202</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>-0.191546</td>\n",
" <td>0.072308</td>\n",
" <td>0.000169</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>-0.256360</td>\n",
" <td>-0.221901</td>\n",
" <td>-0.001074</td>\n",
" </tr>\n",
" <tr>\n",
" <th>51</th>\n",
" <td>0.134785</td>\n",
" <td>-0.030046</td>\n",
" <td>-0.001586</td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>-0.024773</td>\n",
" <td>-0.177674</td>\n",
" <td>-0.000163</td>\n",
" </tr>\n",
" <tr>\n",
" <th>53</th>\n",
" <td>-0.029863</td>\n",
" <td>-0.039079</td>\n",
" <td>0.000247</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>-0.209389</td>\n",
" <td>-0.411426</td>\n",
" <td>-0.000602</td>\n",
" </tr>\n",
" <tr>\n",
" <th>55</th>\n",
" <td>-0.044247</td>\n",
" <td>-0.146770</td>\n",
" <td>-0.000742</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56</th>\n",
" <td>-0.145307</td>\n",
" <td>-0.215587</td>\n",
" <td>-0.001279</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>0.142941</td>\n",
" <td>0.133064</td>\n",
" <td>-0.001036</td>\n",
" </tr>\n",
" <tr>\n",
" <th>58</th>\n",
" <td>0.108424</td>\n",
" <td>-0.057628</td>\n",
" <td>-0.000185</td>\n",
" </tr>\n",
" <tr>\n",
" <th>59</th>\n",
" <td>-0.474398</td>\n",
" <td>-0.305608</td>\n",
" <td>-0.000238</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>-0.090821</td>\n",
" <td>0.314775</td>\n",
" <td>-0.000071</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61</th>\n",
" <td>-0.220699</td>\n",
" <td>-0.316649</td>\n",
" <td>0.000137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62</th>\n",
" <td>0.120535</td>\n",
" <td>-0.092978</td>\n",
" <td>0.000075</td>\n",
" </tr>\n",
" <tr>\n",
" <th>63</th>\n",
" <td>0.384345</td>\n",
" <td>0.160465</td>\n",
" <td>-0.001775</td>\n",
" </tr>\n",
" <tr>\n",
" <th>64</th>\n",
" <td>-0.081610</td>\n",
" <td>-0.106295</td>\n",
" <td>0.000001</td>\n",
" </tr>\n",
" <tr>\n",
" <th>65</th>\n",
" <td>-0.078522</td>\n",
" <td>-0.106331</td>\n",
" <td>-0.000526</td>\n",
" </tr>\n",
" <tr>\n",
" <th>66</th>\n",
" <td>0.093936</td>\n",
" <td>-0.039687</td>\n",
" <td>-0.000773</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67</th>\n",
" <td>0.280606</td>\n",
" <td>0.185761</td>\n",
" <td>-0.001687</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68</th>\n",
" <td>0.033205</td>\n",
" <td>0.031574</td>\n",
" <td>-0.000770</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69</th>\n",
" <td>0.053828</td>\n",
" <td>0.059624</td>\n",
" <td>-0.001817</td>\n",
" </tr>\n",
" <tr>\n",
" <th>70</th>\n",
" <td>-0.066960</td>\n",
" <td>-0.014790</td>\n",
" <td>-0.000542</td>\n",
" </tr>\n",
" <tr>\n",
" <th>71</th>\n",
" <td>-0.278339</td>\n",
" <td>-0.230147</td>\n",
" <td>-0.001345</td>\n",
" </tr>\n",
" <tr>\n",
" <th>72</th>\n",
" <td>-0.071852</td>\n",
" <td>0.044656</td>\n",
" <td>-0.000704</td>\n",
" </tr>\n",
" <tr>\n",
" <th>73</th>\n",
" <td>0.088052</td>\n",
" <td>-0.039901</td>\n",
" <td>-0.000617</td>\n",
" </tr>\n",
" <tr>\n",
" <th>74</th>\n",
" <td>0.123385</td>\n",
" <td>0.067410</td>\n",
" <td>-0.001312</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75</th>\n",
" <td>0.106459</td>\n",
" <td>0.217193</td>\n",
" <td>-0.000966</td>\n",
" </tr>\n",
" <tr>\n",
" <th>76</th>\n",
" <td>0.057379</td>\n",
" <td>-0.036360</td>\n",
" <td>-0.000692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>77</th>\n",
" <td>0.194155</td>\n",
" <td>0.153430</td>\n",
" <td>0.000274</td>\n",
" </tr>\n",
" <tr>\n",
" <th>78</th>\n",
" <td>-0.008417</td>\n",
" <td>-0.145511</td>\n",
" <td>-0.000649</td>\n",
" </tr>\n",
" <tr>\n",
" <th>79</th>\n",
" <td>0.062906</td>\n",
" <td>0.036890</td>\n",
" <td>-0.000501</td>\n",
" </tr>\n",
" <tr>\n",
" <th>80</th>\n",
" <td>0.096918</td>\n",
" <td>0.010941</td>\n",
" <td>0.000339</td>\n",
" </tr>\n",
" <tr>\n",
" <th>81</th>\n",
" <td>0.067340</td>\n",
" <td>-0.046786</td>\n",
" <td>-0.000485</td>\n",
" </tr>\n",
" <tr>\n",
" <th>82</th>\n",
" <td>0.280577</td>\n",
" <td>0.043300</td>\n",
" <td>-0.006671</td>\n",
" </tr>\n",
" <tr>\n",
" <th>83</th>\n",
" <td>0.189963</td>\n",
" <td>0.084224</td>\n",
" <td>0.002351</td>\n",
" </tr>\n",
" <tr>\n",
" <th>84</th>\n",
" <td>-0.082814</td>\n",
" <td>0.320581</td>\n",
" <td>-0.001029</td>\n",
" </tr>\n",
" <tr>\n",
" <th>85</th>\n",
" <td>0.077865</td>\n",
" <td>0.041658</td>\n",
" <td>0.000497</td>\n",
" </tr>\n",
" <tr>\n",
" <th>86</th>\n",
" <td>-0.039664</td>\n",
" <td>0.169486</td>\n",
" <td>0.000006</td>\n",
" </tr>\n",
" <tr>\n",
" <th>87</th>\n",
" <td>-0.179166</td>\n",
" <td>0.026943</td>\n",
" <td>-0.000384</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" TX TY Angle\n",
"Index \n",
"1 -0.409902 -0.776679 0.005192\n",
"2 -0.203918 -0.129108 -0.000114\n",
"3 -0.073236 -0.121481 0.005232\n",
"4 0.096503 0.209221 -0.000937\n",
"5 0.273773 0.139064 -0.000861\n",
"6 -0.142581 -0.107635 -0.001276\n",
"7 0.250407 0.216071 0.000796\n",
"8 0.283372 0.282304 -0.000401\n",
"9 -0.050282 -0.206942 0.000466\n",
"10 -0.260444 -0.093724 0.000294\n",
"11 -0.250819 -0.226583 -0.000273\n",
"12 -0.109851 -0.230295 -0.000197\n",
"13 -0.230497 -0.247708 -0.000582\n",
"14 -0.167045 -0.088239 -0.001976\n",
"15 -0.102966 -0.381232 -0.000696\n",
"16 -0.446168 -0.330277 0.000714\n",
"17 -0.484288 -0.479581 -0.000409\n",
"18 -0.360113 -0.158104 -0.001082\n",
"19 -0.181156 0.096852 -0.000524\n",
"20 -0.233258 -0.224020 -0.000133\n",
"21 -0.517945 -0.216442 0.000353\n",
"22 -0.430855 -0.264084 0.001317\n",
"23 0.062101 0.049123 -0.000954\n",
"24 0.220201 0.587494 -0.001033\n",
"25 0.216040 0.254438 -0.000174\n",
"26 -0.012568 -0.161507 0.000632\n",
"27 -0.519328 -0.211937 0.000066\n",
"28 -0.404652 -0.318270 -0.001067\n",
"29 -0.256579 0.170104 -0.000393\n",
"30 0.302335 0.459654 -0.000876\n",
"31 -0.068923 -0.118727 -0.001269\n",
"32 -0.684872 -0.395559 -0.000054\n",
"33 -0.254463 -0.398948 -0.000226\n",
"34 -0.008502 -0.091239 -0.000839\n",
"35 0.411253 0.096365 -0.000279\n",
"36 -0.274174 -0.174526 -0.000895\n",
"37 -0.081601 -0.068508 -0.000247\n",
"38 -0.385736 -0.210386 -0.000571\n",
"39 -0.619088 -0.305331 -0.000664\n",
"40 0.000690 -0.029939 -0.000561\n",
"41 -0.337677 -0.266693 0.000135\n",
"42 0.255367 0.073167 0.000862\n",
"43 0.550813 0.407205 -0.000839\n",
"44 -0.134835 -0.017286 -0.001762\n",
"45 0.380252 0.001851 -0.001831\n",
"46 0.170431 0.019626 -0.002080\n",
"47 -0.090272 -0.131151 -0.001428\n",
"48 0.101356 0.054044 -0.000202\n",
"49 -0.191546 0.072308 0.000169\n",
"50 -0.256360 -0.221901 -0.001074\n",
"51 0.134785 -0.030046 -0.001586\n",
"52 -0.024773 -0.177674 -0.000163\n",
"53 -0.029863 -0.039079 0.000247\n",
"54 -0.209389 -0.411426 -0.000602\n",
"55 -0.044247 -0.146770 -0.000742\n",
"56 -0.145307 -0.215587 -0.001279\n",
"57 0.142941 0.133064 -0.001036\n",
"58 0.108424 -0.057628 -0.000185\n",
"59 -0.474398 -0.305608 -0.000238\n",
"60 -0.090821 0.314775 -0.000071\n",
"61 -0.220699 -0.316649 0.000137\n",
"62 0.120535 -0.092978 0.000075\n",
"63 0.384345 0.160465 -0.001775\n",
"64 -0.081610 -0.106295 0.000001\n",
"65 -0.078522 -0.106331 -0.000526\n",
"66 0.093936 -0.039687 -0.000773\n",
"67 0.280606 0.185761 -0.001687\n",
"68 0.033205 0.031574 -0.000770\n",
"69 0.053828 0.059624 -0.001817\n",
"70 -0.066960 -0.014790 -0.000542\n",
"71 -0.278339 -0.230147 -0.001345\n",
"72 -0.071852 0.044656 -0.000704\n",
"73 0.088052 -0.039901 -0.000617\n",
"74 0.123385 0.067410 -0.001312\n",
"75 0.106459 0.217193 -0.000966\n",
"76 0.057379 -0.036360 -0.000692\n",
"77 0.194155 0.153430 0.000274\n",
"78 -0.008417 -0.145511 -0.000649\n",
"79 0.062906 0.036890 -0.000501\n",
"80 0.096918 0.010941 0.000339\n",
"81 0.067340 -0.046786 -0.000485\n",
"82 0.280577 0.043300 -0.006671\n",
"83 0.189963 0.084224 0.002351\n",
"84 -0.082814 0.320581 -0.001029\n",
"85 0.077865 0.041658 0.000497\n",
"86 -0.039664 0.169486 0.000006\n",
"87 -0.179166 0.026943 -0.000384"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DieBC = pd.read_excel('SP-Die补偿模版.xlsx',index_col=0,header=0)\n",
"\n",
"BC_X = BC_X.mean(axis=1)\n",
"# DieBC['TX'] = BC_X.fillna(BC_X.interpolate()).values\n",
"DieBC['TX'] = BC_X\n",
"\n",
"BC_Y = BC_Y.mean(axis=1)\n",
"# DieBC['TY'] = BC_Y.fillna(BC_Y.interpolate()).values\n",
"DieBC['TY'] = BC_Y\n",
"\n",
"BC_A = BC_A.mean(axis=1)\n",
"# DieBC['Angle'] = BC_A.fillna(BC_A.interpolate()).values\n",
"DieBC['Angle'] = BC_A\n",
"\n",
"# 角度解耦X\n",
"DieBC['TX'] = DieBC['TX'] - 5664.6857 * np.sin(DieBC['Angle']*np.pi/180)\n",
"DieBC"
]
},
{
"cell_type": "markdown",
"id": "0ea9ce06",
"metadata": {},
"source": [
"# 计算补偿值"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "7e26684e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>TX</th>\n",
" <th>TY</th>\n",
" <th>Angle</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Index</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>-0.203918</td>\n",
" <td>-0.129108</td>\n",
" <td>-0.000114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.096503</td>\n",
" <td>0.209221</td>\n",
" <td>-0.000937</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.273773</td>\n",
" <td>0.139064</td>\n",
" <td>-0.000861</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>-0.142581</td>\n",
" <td>-0.107635</td>\n",
" <td>-0.001276</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.250407</td>\n",
" <td>0.216071</td>\n",
" <td>0.000796</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.283372</td>\n",
" <td>0.282304</td>\n",
" <td>-0.000401</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>-0.050282</td>\n",
" <td>-0.206942</td>\n",
" <td>0.000466</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>-0.260444</td>\n",
" <td>-0.093724</td>\n",
" <td>0.000294</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>-0.250819</td>\n",
" <td>-0.226583</td>\n",
" <td>-0.000273</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>-0.109851</td>\n",
" <td>-0.230295</td>\n",
" <td>-0.000197</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>-0.230497</td>\n",
" <td>-0.247708</td>\n",
" <td>-0.000582</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>-0.167045</td>\n",
" <td>-0.088239</td>\n",
" <td>-0.001976</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>-0.102966</td>\n",
" <td>-0.381232</td>\n",
" <td>-0.000696</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>-0.446168</td>\n",
" <td>-0.330277</td>\n",
" <td>0.000714</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>-0.484288</td>\n",
" <td>-0.479581</td>\n",
" <td>-0.000409</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>-0.360113</td>\n",
" <td>-0.158104</td>\n",
" <td>-0.001082</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>-0.181156</td>\n",
" <td>0.096852</td>\n",
" <td>-0.000524</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>-0.233258</td>\n",
" <td>-0.224020</td>\n",
" <td>-0.000133</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>-0.517945</td>\n",
" <td>-0.216442</td>\n",
" <td>0.000353</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>-0.430855</td>\n",
" <td>-0.264084</td>\n",
" <td>0.001317</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>0.062101</td>\n",
" <td>0.049123</td>\n",
" <td>-0.000954</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>0.220201</td>\n",
" <td>0.587494</td>\n",
" <td>-0.001033</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>0.216040</td>\n",
" <td>0.254438</td>\n",
" <td>-0.000174</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>-0.012568</td>\n",
" <td>-0.161507</td>\n",
" <td>0.000632</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>-0.519328</td>\n",
" <td>-0.211937</td>\n",
" <td>0.000066</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>-0.404652</td>\n",
" <td>-0.318270</td>\n",
" <td>-0.001067</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>-0.256579</td>\n",
" <td>0.170104</td>\n",
" <td>-0.000393</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>0.302335</td>\n",
" <td>0.459654</td>\n",
" <td>-0.000876</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>-0.068923</td>\n",
" <td>-0.118727</td>\n",
" <td>-0.001269</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>-0.684872</td>\n",
" <td>-0.395559</td>\n",
" <td>-0.000054</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>-0.254463</td>\n",
" <td>-0.398948</td>\n",
" <td>-0.000226</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>-0.008502</td>\n",
" <td>-0.091239</td>\n",
" <td>-0.000839</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>0.411253</td>\n",
" <td>0.096365</td>\n",
" <td>-0.000279</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>-0.274174</td>\n",
" <td>-0.174526</td>\n",
" <td>-0.000895</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>-0.081601</td>\n",
" <td>-0.068508</td>\n",
" <td>-0.000247</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>-0.385736</td>\n",
" <td>-0.210386</td>\n",
" <td>-0.000571</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>-0.619088</td>\n",
" <td>-0.305331</td>\n",
" <td>-0.000664</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>0.000690</td>\n",
" <td>-0.029939</td>\n",
" <td>-0.000561</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>-0.337677</td>\n",
" <td>-0.266693</td>\n",
" <td>0.000135</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>0.255367</td>\n",
" <td>0.073167</td>\n",
" <td>0.000862</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>0.550813</td>\n",
" <td>0.407205</td>\n",
" <td>-0.000839</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>-0.134835</td>\n",
" <td>-0.017286</td>\n",
" <td>-0.001762</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>0.380252</td>\n",
" <td>0.001851</td>\n",
" <td>-0.001831</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>0.170431</td>\n",
" <td>0.019626</td>\n",
" <td>-0.002080</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>-0.090272</td>\n",
" <td>-0.131151</td>\n",
" <td>-0.001428</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>0.101356</td>\n",
" <td>0.054044</td>\n",
" <td>-0.000202</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>-0.191546</td>\n",
" <td>0.072308</td>\n",
" <td>0.000169</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>-0.256360</td>\n",
" <td>-0.221901</td>\n",
" <td>-0.001074</td>\n",
" </tr>\n",
" <tr>\n",
" <th>51</th>\n",
" <td>0.134785</td>\n",
" <td>-0.030046</td>\n",
" <td>-0.001586</td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>-0.024773</td>\n",
" <td>-0.177674</td>\n",
" <td>-0.000163</td>\n",
" </tr>\n",
" <tr>\n",
" <th>53</th>\n",
" <td>-0.029863</td>\n",
" <td>-0.039079</td>\n",
" <td>0.000247</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>-0.209389</td>\n",
" <td>-0.411426</td>\n",
" <td>-0.000602</td>\n",
" </tr>\n",
" <tr>\n",
" <th>55</th>\n",
" <td>-0.044247</td>\n",
" <td>-0.146770</td>\n",
" <td>-0.000742</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56</th>\n",
" <td>-0.145307</td>\n",
" <td>-0.215587</td>\n",
" <td>-0.001279</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>0.142941</td>\n",
" <td>0.133064</td>\n",
" <td>-0.001036</td>\n",
" </tr>\n",
" <tr>\n",
" <th>58</th>\n",
" <td>0.108424</td>\n",
" <td>-0.057628</td>\n",
" <td>-0.000185</td>\n",
" </tr>\n",
" <tr>\n",
" <th>59</th>\n",
" <td>-0.474398</td>\n",
" <td>-0.305608</td>\n",
" <td>-0.000238</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>-0.090821</td>\n",
" <td>0.314775</td>\n",
" <td>-0.000071</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61</th>\n",
" <td>-0.220699</td>\n",
" <td>-0.316649</td>\n",
" <td>0.000137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62</th>\n",
" <td>0.120535</td>\n",
" <td>-0.092978</td>\n",
" <td>0.000075</td>\n",
" </tr>\n",
" <tr>\n",
" <th>63</th>\n",
" <td>0.384345</td>\n",
" <td>0.160465</td>\n",
" <td>-0.001775</td>\n",
" </tr>\n",
" <tr>\n",
" <th>64</th>\n",
" <td>-0.081610</td>\n",
" <td>-0.106295</td>\n",
" <td>0.000001</td>\n",
" </tr>\n",
" <tr>\n",
" <th>65</th>\n",
" <td>-0.078522</td>\n",
" <td>-0.106331</td>\n",
" <td>-0.000526</td>\n",
" </tr>\n",
" <tr>\n",
" <th>66</th>\n",
" <td>0.093936</td>\n",
" <td>-0.039687</td>\n",
" <td>-0.000773</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67</th>\n",
" <td>0.280606</td>\n",
" <td>0.185761</td>\n",
" <td>-0.001687</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68</th>\n",
" <td>0.033205</td>\n",
" <td>0.031574</td>\n",
" <td>-0.000770</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69</th>\n",
" <td>0.053828</td>\n",
" <td>0.059624</td>\n",
" <td>-0.001817</td>\n",
" </tr>\n",
" <tr>\n",
" <th>70</th>\n",
" <td>-0.066960</td>\n",
" <td>-0.014790</td>\n",
" <td>-0.000542</td>\n",
" </tr>\n",
" <tr>\n",
" <th>71</th>\n",
" <td>-0.278339</td>\n",
" <td>-0.230147</td>\n",
" <td>-0.001345</td>\n",
" </tr>\n",
" <tr>\n",
" <th>72</th>\n",
" <td>-0.071852</td>\n",
" <td>0.044656</td>\n",
" <td>-0.000704</td>\n",
" </tr>\n",
" <tr>\n",
" <th>73</th>\n",
" <td>0.088052</td>\n",
" <td>-0.039901</td>\n",
" <td>-0.000617</td>\n",
" </tr>\n",
" <tr>\n",
" <th>74</th>\n",
" <td>0.123385</td>\n",
" <td>0.067410</td>\n",
" <td>-0.001312</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75</th>\n",
" <td>0.106459</td>\n",
" <td>0.217193</td>\n",
" <td>-0.000966</td>\n",
" </tr>\n",
" <tr>\n",
" <th>76</th>\n",
" <td>0.057379</td>\n",
" <td>-0.036360</td>\n",
" <td>-0.000692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>77</th>\n",
" <td>0.194155</td>\n",
" <td>0.153430</td>\n",
" <td>0.000274</td>\n",
" </tr>\n",
" <tr>\n",
" <th>78</th>\n",
" <td>-0.008417</td>\n",
" <td>-0.145511</td>\n",
" <td>-0.000649</td>\n",
" </tr>\n",
" <tr>\n",
" <th>79</th>\n",
" <td>0.062906</td>\n",
" <td>0.036890</td>\n",
" <td>-0.000501</td>\n",
" </tr>\n",
" <tr>\n",
" <th>80</th>\n",
" <td>0.096918</td>\n",
" <td>0.010941</td>\n",
" <td>0.000339</td>\n",
" </tr>\n",
" <tr>\n",
" <th>81</th>\n",
" <td>0.067340</td>\n",
" <td>-0.046786</td>\n",
" <td>-0.000485</td>\n",
" </tr>\n",
" <tr>\n",
" <th>82</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>83</th>\n",
" <td>0.189963</td>\n",
" <td>0.084224</td>\n",
" <td>0.002351</td>\n",
" </tr>\n",
" <tr>\n",
" <th>84</th>\n",
" <td>-0.082814</td>\n",
" <td>0.320581</td>\n",
" <td>-0.001029</td>\n",
" </tr>\n",
" <tr>\n",
" <th>85</th>\n",
" <td>0.077865</td>\n",
" <td>0.041658</td>\n",
" <td>0.000497</td>\n",
" </tr>\n",
" <tr>\n",
" <th>86</th>\n",
" <td>-0.039664</td>\n",
" <td>0.169486</td>\n",
" <td>0.000006</td>\n",
" </tr>\n",
" <tr>\n",
" <th>87</th>\n",
" <td>-0.179166</td>\n",
" <td>0.026943</td>\n",
" <td>-0.000384</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" TX TY Angle\n",
"Index \n",
"1 NaN NaN NaN\n",
"2 -0.203918 -0.129108 -0.000114\n",
"3 NaN NaN NaN\n",
"4 0.096503 0.209221 -0.000937\n",
"5 0.273773 0.139064 -0.000861\n",
"6 -0.142581 -0.107635 -0.001276\n",
"7 0.250407 0.216071 0.000796\n",
"8 0.283372 0.282304 -0.000401\n",
"9 -0.050282 -0.206942 0.000466\n",
"10 -0.260444 -0.093724 0.000294\n",
"11 -0.250819 -0.226583 -0.000273\n",
"12 -0.109851 -0.230295 -0.000197\n",
"13 -0.230497 -0.247708 -0.000582\n",
"14 -0.167045 -0.088239 -0.001976\n",
"15 -0.102966 -0.381232 -0.000696\n",
"16 -0.446168 -0.330277 0.000714\n",
"17 -0.484288 -0.479581 -0.000409\n",
"18 -0.360113 -0.158104 -0.001082\n",
"19 -0.181156 0.096852 -0.000524\n",
"20 -0.233258 -0.224020 -0.000133\n",
"21 -0.517945 -0.216442 0.000353\n",
"22 -0.430855 -0.264084 0.001317\n",
"23 0.062101 0.049123 -0.000954\n",
"24 0.220201 0.587494 -0.001033\n",
"25 0.216040 0.254438 -0.000174\n",
"26 -0.012568 -0.161507 0.000632\n",
"27 -0.519328 -0.211937 0.000066\n",
"28 -0.404652 -0.318270 -0.001067\n",
"29 -0.256579 0.170104 -0.000393\n",
"30 0.302335 0.459654 -0.000876\n",
"31 -0.068923 -0.118727 -0.001269\n",
"32 -0.684872 -0.395559 -0.000054\n",
"33 -0.254463 -0.398948 -0.000226\n",
"34 -0.008502 -0.091239 -0.000839\n",
"35 0.411253 0.096365 -0.000279\n",
"36 -0.274174 -0.174526 -0.000895\n",
"37 -0.081601 -0.068508 -0.000247\n",
"38 -0.385736 -0.210386 -0.000571\n",
"39 -0.619088 -0.305331 -0.000664\n",
"40 0.000690 -0.029939 -0.000561\n",
"41 -0.337677 -0.266693 0.000135\n",
"42 0.255367 0.073167 0.000862\n",
"43 0.550813 0.407205 -0.000839\n",
"44 -0.134835 -0.017286 -0.001762\n",
"45 0.380252 0.001851 -0.001831\n",
"46 0.170431 0.019626 -0.002080\n",
"47 -0.090272 -0.131151 -0.001428\n",
"48 0.101356 0.054044 -0.000202\n",
"49 -0.191546 0.072308 0.000169\n",
"50 -0.256360 -0.221901 -0.001074\n",
"51 0.134785 -0.030046 -0.001586\n",
"52 -0.024773 -0.177674 -0.000163\n",
"53 -0.029863 -0.039079 0.000247\n",
"54 -0.209389 -0.411426 -0.000602\n",
"55 -0.044247 -0.146770 -0.000742\n",
"56 -0.145307 -0.215587 -0.001279\n",
"57 0.142941 0.133064 -0.001036\n",
"58 0.108424 -0.057628 -0.000185\n",
"59 -0.474398 -0.305608 -0.000238\n",
"60 -0.090821 0.314775 -0.000071\n",
"61 -0.220699 -0.316649 0.000137\n",
"62 0.120535 -0.092978 0.000075\n",
"63 0.384345 0.160465 -0.001775\n",
"64 -0.081610 -0.106295 0.000001\n",
"65 -0.078522 -0.106331 -0.000526\n",
"66 0.093936 -0.039687 -0.000773\n",
"67 0.280606 0.185761 -0.001687\n",
"68 0.033205 0.031574 -0.000770\n",
"69 0.053828 0.059624 -0.001817\n",
"70 -0.066960 -0.014790 -0.000542\n",
"71 -0.278339 -0.230147 -0.001345\n",
"72 -0.071852 0.044656 -0.000704\n",
"73 0.088052 -0.039901 -0.000617\n",
"74 0.123385 0.067410 -0.001312\n",
"75 0.106459 0.217193 -0.000966\n",
"76 0.057379 -0.036360 -0.000692\n",
"77 0.194155 0.153430 0.000274\n",
"78 -0.008417 -0.145511 -0.000649\n",
"79 0.062906 0.036890 -0.000501\n",
"80 0.096918 0.010941 0.000339\n",
"81 0.067340 -0.046786 -0.000485\n",
"82 NaN NaN NaN\n",
"83 0.189963 0.084224 0.002351\n",
"84 -0.082814 0.320581 -0.001029\n",
"85 0.077865 0.041658 0.000497\n",
"86 -0.039664 0.169486 0.000006\n",
"87 -0.179166 0.026943 -0.000384"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"StartIndex = 1\n",
"EndIndex = None\n",
"error_list = [1,3,82]\n",
"DieBC.loc[error_list,:] = np.nan\n",
"\n",
"DieBC.loc[StartIndex:EndIndex,:]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "06837ff4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>TX</th>\n",
" <th>TY</th>\n",
" <th>Angle</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>84.000000</td>\n",
" <td>84.000000</td>\n",
" <td>84.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>-0.058194</td>\n",
" <td>-0.045447</td>\n",
" <td>-0.000494</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.247478</td>\n",
" <td>0.208267</td>\n",
" <td>0.000763</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-0.684872</td>\n",
" <td>-0.479581</td>\n",
" <td>-0.002080</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>-0.223148</td>\n",
" <td>-0.210774</td>\n",
" <td>-0.000957</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>-0.058621</td>\n",
" <td>-0.043343</td>\n",
" <td>-0.000534</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>0.102632</td>\n",
" <td>0.072523</td>\n",
" <td>-0.000067</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>0.550813</td>\n",
" <td>0.587494</td>\n",
" <td>0.002351</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" TX TY Angle\n",
"count 84.000000 84.000000 84.000000\n",
"mean -0.058194 -0.045447 -0.000494\n",
"std 0.247478 0.208267 0.000763\n",
"min -0.684872 -0.479581 -0.002080\n",
"25% -0.223148 -0.210774 -0.000957\n",
"50% -0.058621 -0.043343 -0.000534\n",
"75% 0.102632 0.072523 -0.000067\n",
"max 0.550813 0.587494 0.002351"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DieBC.loc[StartIndex:EndIndex,:].describe()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "ef505ebc",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"全局补偿X: 0.0582\n",
"全局补偿Y: 0.0454\n",
"全局补偿角度: 0.000494\n"
]
}
],
"source": [
"X_overall,y_overall,theta_overall = DieBC.loc[StartIndex:EndIndex,:].describe().loc['mean',:]\n",
"print(f'全局补偿X: {-X_overall:.4f}')\n",
"print(f'全局补偿Y: {-y_overall:.4f}')\n",
"print(f'全局补偿角度: {-theta_overall:.6f}')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "dedb38d7",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {
"21d8b0ba77b54fbfabcdf5f52b80df1a": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"2a0670114f11457b80a6ef3ef22a34fc": {
"model_module": "jupyter-matplotlib",
"model_module_version": "^0.11",
"model_name": "ToolbarModel",
"state": {
"_model_module_version": "^0.11",
"_view_module_version": "^0.11",
"collapsed": true,
"layout": "IPY_MODEL_f7658ea254754f89ae1eaaca3822afd1",
"orientation": "vertical",
"toolitems": [
[
"Home",
"Reset original view",
"home",
"home"
],
[
"Back",
"Back to previous view",
"arrow-left",
"back"
],
[
"Forward",
"Forward to next view",
"arrow-right",
"forward"
],
[
"Pan",
"Left button pans, Right button zooms\nx/y fixes axis, CTRL fixes aspect",
"arrows",
"pan"
],
[
"Zoom",
"Zoom to rectangle\nx/y fixes axis",
"square-o",
"zoom"
],
[
"Download",
"Download plot",
"floppy-o",
"save_figure"
]
]
}
},
"2d1533973ff749659dd783abe0db740f": {
"model_module": "jupyter-matplotlib",
"model_module_version": "^0.11",
"model_name": "ToolbarModel",
"state": {
"_model_module_version": "^0.11",
"_view_module_version": "^0.11",
"collapsed": true,
"layout": "IPY_MODEL_b8d4c7781ff5497da21ab97b922bac2f",
"orientation": "vertical",
"toolitems": [
[
"Home",
"Reset original view",
"home",
"home"
],
[
"Back",
"Back to previous view",
"arrow-left",
"back"
],
[
"Forward",
"Forward to next view",
"arrow-right",
"forward"
],
[
"Pan",
"Left button pans, Right button zooms\nx/y fixes axis, CTRL fixes aspect",
"arrows",
"pan"
],
[
"Zoom",
"Zoom to rectangle\nx/y fixes axis",
"square-o",
"zoom"
],
[
"Download",
"Download plot",
"floppy-o",
"save_figure"
]
]
}
},
"30e39652821f45d4b6a059be76bf8b9b": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"403a3e58c30643c69e94e76f12bc0587": {
"model_module": "jupyter-matplotlib",
"model_module_version": "^0.11",
"model_name": "MPLCanvasModel",
"state": {
"_data_url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAKvCAYAAAD5ieWEAAAAAXNSR0IArs4c6QAAIABJREFUeF7snQd0VNX2xr+Z9ISENOwN7B2sPCyAigIiioIFn+XZQGyIVCk+ERWxIYgFfBbsoqiIFRHFhgqKoogN+98GJCSkJzP/te/NJDOTKXdm9iRzM99Zy6Vmzt3n3N8p93yn7ONwu91uMJAACZAACZAACZAACZAACZAACZAACbQpAQcFepvyZ+IkQAIkQAIkQAIkQAIkQAIkQAIkYBCgQGdFIAESIAESIAESIAESIAESIAESIIEEIECBngCFwCyQAAmQAAmQAAmQAAmQAAmQAAmQAAU66wAJkAAJkAAJkAAJkAAJkAAJkAAJJAABCvQEKARmgQRIgARIgARIgARIgARIgARIgAQo0FkHSIAESIAESIAESIAESIAESIAESCABCFCgJ0AhMAskQAIkQAIkQAIkQAIkQAIkQAIkQIHOOkACJEACJEACJEACJEACJEACJEACCUCAAj0BCoFZIAESIAESIAESIAESIAESIAESIAEKdNYBEiABEiABEiABEiABEiABEiABEkgAAhToCVAIzAIJkAAJkAAJkAAJkAAJkAAJkAAJUKCzDpAACZAACZAACZAACZAACZAACZBAAhCgQE+AQmAWSIAESIAEkpvA8OHDsd9+++GSSy5Benp6csPg25MACZAACZBAEhOgQE/iwuerkwAJkAAJtD2B33//Hccccwz23XdfLFy4sO0zxByQAAmQAAmQAAm0GQEK9DZDz4RJgARIgAQCEfjtt99w7LHHGj85HA507NgRu+66K0488UScfvrpSEtLCwhOxO2ECRMwf/58HH744THB3bRpE2699VYsX74cpaWlyM/Px+DBg3HllVciJSUlJtv+D7/wwgsYN24cLrvsMsN+PMM///yDU089FVdffbXxb60wdepUPP7443jooYfQo0cPH7MbN27EzTffjJUrV6KkpATbbLMN+vfvD9k1kJGRoZUFHztut9tI488//8Q777yDvLw8n9+vueYaLF68GE8//TS6du0alzzQKAmQAAmQAAlEQ4ACPRpqfIYESIAESCBuBDwCfbvttsPAgQPx999/Y9myZYa4E+E9d+5cZGZmtkhfS6BXVFQY4vWnn37CTjvthM6dO2PVqlXYsmUL/v3vf2Py5MkR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
"_figure_label": "Figure 2",
"_model_module_version": "^0.11",
"_size": [
800,
550
],
"_view_module_version": "^0.11",
"layout": "IPY_MODEL_6bd4aa27ce3d4da78e5e37533a8df70a",
"toolbar": "IPY_MODEL_8a5b8401a4764aa19048fef48718488b",
"toolbar_position": "left"
}
},
"6bd4aa27ce3d4da78e5e37533a8df70a": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"8a5b8401a4764aa19048fef48718488b": {
"model_module": "jupyter-matplotlib",
"model_module_version": "^0.11",
"model_name": "ToolbarModel",
"state": {
"_model_module_version": "^0.11",
"_view_module_version": "^0.11",
"collapsed": true,
"layout": "IPY_MODEL_30e39652821f45d4b6a059be76bf8b9b",
"orientation": "vertical",
"toolitems": [
[
"Home",
"Reset original view",
"home",
"home"
],
[
"Back",
"Back to previous view",
"arrow-left",
"back"
],
[
"Forward",
"Forward to next view",
"arrow-right",
"forward"
],
[
"Pan",
"Left button pans, Right button zooms\nx/y fixes axis, CTRL fixes aspect",
"arrows",
"pan"
],
[
"Zoom",
"Zoom to rectangle\nx/y fixes axis",
"square-o",
"zoom"
],
[
"Download",
"Download plot",
"floppy-o",
"save_figure"
]
]
}
},
"8de2ee2a201f4e78b83bb73202597800": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"b8d4c7781ff5497da21ab97b922bac2f": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"cc2cbd4941e54dc4ab6e09927cb3f90b": {
"model_module": "jupyter-matplotlib",
"model_module_version": "^0.11",
"model_name": "MPLCanvasModel",
"state": {
"_data_url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAKvCAYAAAD5ieWEAAAAAXNSR0IArs4c6QAAIABJREFUeF7snQd4FEUbx/93SUhISCAJTSwUUaoIAgKCSJHee5UmHUR6E+ldmhTpSBMEpAcQASkighRREUE6yocCqaSXu+9553KX28sltze5g0vyzvPwAHczs7O/md3b/75lNHq9Xg8uTIAJMAEmwASYABNgAkyACTABJsAEmMBzJaBhgf5c+fPBmQATYAJMgAkwASbABJgAE2ACTIAJCAIs0HkhMAEmwASYABNgAkyACTABJsAEmAATcAECLNBdYBJ4CEyACTABJsAEmAATYAJMgAkwASbABFig8xpgAkyACTABJsAEmAATYAJMgAkwASbgAgRYoLvAJPAQmAATYAJMgAkwASbABJgAE2ACTIAJsEDnNcAEmAATYAJMgAkwASbABJgAE2ACTMAFCLBAd4FJ4CEwASbABJgAE2ACTIAJMAEmwASYABNggc5rgAkwASbABJgAE2ACTIAJMAEmwASYgAsQYIHuApPAQ2ACTIAJMAEmwASYABNgAkyACTABJsACndcAE2ACTIAJMAEmwASYABNgAkyACTABFyDAAt0FJoGHwASYABNgAkyACTABJsAEmAATYAJMgAU6rwEmwASYABNgAkyACTABJsAEmAATYAIuQIAFugtMAg+BCTABJsAEmAATUE/g4sWLqFixovoGdtTU6/X4/fffUa5cOTtacVUmwASYABNgAo4hwALdMRy5FybABJgAE8jGBPr374+yZcuib9++yJEjRzYm4fxTP3v2LLp37y5YjxgxwuEHnDx5MrZu3Yqvv/4aFSpUcHj/3CETYAJMgAkwgfQIsEDn9cEEmAATYAJMIAMEHjx4gDp16qBMmTLYtWtXBnriprYIREdHo0WLFiAr944dO+Dv72+rid3fX7hwAV26dEGbNm0wc+ZMU3udTof4+HjExsYid+7c0Gg0dvfNDZgAE2ACTIAJ2CLAAt0WIf6eCTABJsAE7CLwzz//oG7duqINiRgSM6+++iqaNGmC9u3bw8PDw2p/JG7HjRuHjRs3okqVKnYd07JySEgIPvvsM5w6dQphYWHIkycP2rZtiyFDhsDNzS1DfVs23rNnD8aMGYNBgwaJ/p1ZHj9+jNatW2PYsGHib0eVqVOn4quvvsKXX36Jd955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
"_figure_label": "Figure 3",
"_model_module_version": "^0.11",
"_size": [
800,
550
],
"_view_module_version": "^0.11",
"layout": "IPY_MODEL_8de2ee2a201f4e78b83bb73202597800",
"toolbar": "IPY_MODEL_2d1533973ff749659dd783abe0db740f",
"toolbar_position": "left"
}
},
"ee97a7eebb9a425eb0ade6e31817aa89": {
"model_module": "jupyter-matplotlib",
"model_module_version": "^0.11",
"model_name": "MPLCanvasModel",
"state": {
"_data_url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAKvCAYAAAD5ieWEAAAAAXNSR0IArs4c6QAAIABJREFUeF7snQeYU0XXx//J9l5YwE71BQTFLoLSRKSLgKhYQEW6gIIICqgUQRBBsFBUqvopoggoIk2KiO8LqBQrIqJYgO29JPmeM3dvNjebbG6SyW7u7pnnQTB37pm5v5lb/jNnzphsNpsNnJgAE2ACTIAJMAEmwASYABNgAkyACTCBKiVgYoFepfy5cCbABJgAE2ACTIAJMAEmwASYABNgAoIAC3TuCEyACTABJsAEmAATYAJMgAkwASbABIKAAAv0IGgErgITYAJMgAkwASbABJgAE2ACTIAJMAEW6NwHmAATYAJMgAkwASbABJgAE2ACTIAJBAEBFuhB0AhcBSbABJgAE2ACTIAJMAEmwASYABNgAizQuQ8wASbABJgAE2ACTIAJMAEmwASYABMIAgIs0IOgEbgKTIAJMAEmwASYABNgAkyACTABJsAEWKBzH2ACTIAJMAEmwASYABNgAkyACTABJhAEBFigB0EjcBWYABNgAkyACTABJsAEmAATYAJMgAmwQOc+wASYABNgAkyACTABJsAEmAATYAJMIAgIsEAPgkbgKjABJsAEmAATYAJMgAkwASbABJgAE2CBzn2ACTABJsAEmAATYAJMgAkwASbABJhAEBBggR4EjcBVYAJMgAkwgZpNYNiwYWjRogWGDBmC8PDwmg2Dr54JMAEmwASYQA0mwAK9Bjc+XzoTYAJMgAlUPYHTp0+jY8eOaN68OT788MOqrxDXgAkwASbABJgAE6gyAizQqww9F8wEmAATYAKuCPz555+45ZZbxCGTyYSEhAQ0atQI3bt3R//+/REWFuYSHInbSZMmYdWqVbjhhhv8gpuWloa5c+di9+7dyMjIQGJiIvr164fRo0cjJCTEL9vOJ69fvx5PPvkkRo4cKewHMp09exZ9+vTBY489Jv6WlaZNm4a3334by5cvR+vWrTVmU1NTMWvWLBw4cADp6ek477zz0K1bN5DXQEREhKwqlLPzf//3f3jmmWeEV8K4cePsx3/44Qf07t0brVq1wsqVKwNWPhtmAkyACTABJuALARbovlDjc5gAE2ACTCBgBFSBfsEFF6BXr144c+YMdu7cKcQdCe+lS5ciMjKyXPmyBHpubq4QrydPnsQll1yC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
"_figure_label": "Figure 1",
"_model_module_version": "^0.11",
"_size": [
800,
550
],
"_view_module_version": "^0.11",
"layout": "IPY_MODEL_21d8b0ba77b54fbfabcdf5f52b80df1a",
"toolbar": "IPY_MODEL_2a0670114f11457b80a6ef3ef22a34fc",
"toolbar_position": "left"
}
},
"f7658ea254754f89ae1eaaca3822afd1": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
}
},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}