MII_Yunusov_Niyaz/notebooks/lec1.ipynb
2024-09-30 23:02:17 +04:00

213 KiB
Raw Permalink Blame History

Работа с NumPy

In [1]:
import numpy as np

matrix = np.array([[4, 5, 0], [9, 9, 9]])
print("matrix = \n", matrix, "\n")

tmatrix = matrix.T
print("tmatrix = \n", tmatrix, "\n")

vector = np.ravel(matrix)
print("vector = \n", vector, "\n")

tvector = np.reshape(vector, (6, 1))
print("tvector = \n", tvector, "\n")

list_matrix = list(matrix)
print("list_matrix = \n", list_matrix, "\n")

str_matrix = str(matrix)
print("matrix as str = \n", str_matrix, "\n")

print("matrix type is", type(matrix), "\n")

print("vector type is", type(vector), "\n")

print("list_matrix type is", type(list_matrix), "\n")

print("str_matrix type is", type(str_matrix), "\n")

formatted_vector = "; ".join(map(str, vector))
print("formatted_vector = \n", formatted_vector, "\n")
matrix = 
 [[4 5 0]
 [9 9 9]] 

tmatrix = 
 [[4 9]
 [5 9]
 [0 9]] 

vector = 
 [4 5 0 9 9 9] 

tvector = 
 [[4]
 [5]
 [0]
 [9]
 [9]
 [9]] 

list_matrix = 
 [array([4, 5, 0]), array([9, 9, 9])] 

matrix as str = 
 [[4 5 0]
 [9 9 9]] 

matrix type is <class 'numpy.ndarray'> 

vector type is <class 'numpy.ndarray'> 

list_matrix type is <class 'list'> 

str_matrix type is <class 'str'> 

formatted_vector = 
 4; 5; 0; 9; 9; 9 

Работа с Pandas DataFrame

https://pandas.pydata.org/docs/user_guide/10min.html

Работа с данными - чтение и запись CSV

In [3]:
import pandas as pd

df = pd.read_csv("../data/car_price_prediction.csv")

df.to_csv("../data/test.csv")

Работа с данными - основные команды

In [70]:
df.info()

print(df.describe().transpose())

cleared_df = df.drop(["Color", "Leather interior"], axis=1)
print(cleared_df.head())
print(cleared_df.tail())

sorted_df = cleared_df.sort_values(by="Price")
print(sorted_df.head())
print(sorted_df.tail())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 19237 entries, 0 to 19236
Data columns (total 18 columns):
 #   Column            Non-Null Count  Dtype  
---  ------            --------------  -----  
 0   ID                19237 non-null  int64  
 1   Price             19237 non-null  int64  
 2   Levy              19237 non-null  object 
 3   Manufacturer      19237 non-null  object 
 4   Model             19237 non-null  object 
 5   Prod. year        19237 non-null  int64  
 6   Category          19237 non-null  object 
 7   Leather interior  19237 non-null  object 
 8   Fuel type         19237 non-null  object 
 9   Engine volume     19237 non-null  object 
 10  Mileage           19237 non-null  object 
 11  Cylinders         19237 non-null  float64
 12  Gear box type     19237 non-null  object 
 13  Drive wheels      19237 non-null  object 
 14  Doors             19237 non-null  object 
 15  Wheel             19237 non-null  object 
 16  Color             19237 non-null  object 
 17  Airbags           19237 non-null  int64  
dtypes: float64(1), int64(4), object(13)
memory usage: 2.6+ MB
              count          mean            std         min         25%  \
ID          19237.0  4.557654e+07  936591.422799  20746880.0  45698374.0   
Price       19237.0  1.855593e+04  190581.269684         1.0      5331.0   
Prod. year  19237.0  2.010913e+03       5.668673      1939.0      2009.0   
Cylinders   19237.0  4.582991e+00       1.199933         1.0         4.0   
Airbags     19237.0  6.582627e+00       4.320168         0.0         4.0   

                   50%         75%         max  
ID          45772308.0  45802036.0  45816654.0  
Price          13172.0     22075.0  26307500.0  
Prod. year      2012.0      2015.0      2020.0  
Cylinders          4.0         4.0        16.0  
Airbags            6.0        12.0        16.0  
         ID  Price  Levy Manufacturer    Model  Prod. year   Category  \
0  45654403  13328  1399        LEXUS   RX 450        2010       Jeep   
1  44731507  16621  1018    CHEVROLET  Equinox        2011       Jeep   
2  45774419   8467     -        HONDA      FIT        2006  Hatchback   
3  45769185   3607   862         FORD   Escape        2011       Jeep   
4  45809263  11726   446        HONDA      FIT        2014  Hatchback   

  Fuel type Engine volume    Mileage  Cylinders Gear box type Drive wheels  \
0    Hybrid           3.5  186005 km        6.0     Automatic          4x4   
1    Petrol             3  192000 km        6.0     Tiptronic          4x4   
2    Petrol           1.3  200000 km        4.0      Variator        Front   
3    Hybrid           2.5  168966 km        4.0     Automatic          4x4   
4    Petrol           1.3   91901 km        4.0     Automatic        Front   

    Doors             Wheel  Airbags  
0  04-May        Left wheel       12  
1  04-May        Left wheel        8  
2  04-May  Right-hand drive        2  
3  04-May        Left wheel        0  
4  04-May        Left wheel        4  
             ID  Price  Levy   Manufacturer    Model  Prod. year Category  \
19232  45798355   8467     -  MERCEDES-BENZ  CLK 200        1999    Coupe   
19233  45778856  15681   831        HYUNDAI   Sonata        2011    Sedan   
19234  45804997  26108   836        HYUNDAI   Tucson        2010     Jeep   
19235  45793526   5331  1288      CHEVROLET  Captiva        2007     Jeep   
19236  45813273    470   753        HYUNDAI   Sonata        2012    Sedan   

      Fuel type Engine volume    Mileage  Cylinders Gear box type  \
19232       CNG     2.0 Turbo  300000 km        4.0        Manual   
19233    Petrol           2.4  161600 km        4.0     Tiptronic   
19234    Diesel             2  116365 km        4.0     Automatic   
19235    Diesel             2   51258 km        4.0     Automatic   
19236    Hybrid           2.4  186923 km        4.0     Automatic   

      Drive wheels   Doors       Wheel  Airbags  
19232         Rear  02-Mar  Left wheel        5  
19233        Front  04-May  Left wheel        8  
19234        Front  04-May  Left wheel        4  
19235        Front  04-May  Left wheel        4  
19236        Front  04-May  Left wheel       12  
             ID  Price  Levy Manufacturer     Model  Prod. year   Category  \
7815   45765530      1     -         OPEL     Astra        1999      Sedan   
16992  45772201      1  1202    CHEVROLET   Lacetti        2006  Hatchback   
4776   45687380      3   810   VOLKSWAGEN     Jetta        2016      Sedan   
13419  45816352      3   503       TOYOTA   Prius C        2012  Hatchback   
14642  45816369      3    87      PORSCHE  Panamera        2011      Sedan   

      Fuel type Engine volume    Mileage  Cylinders Gear box type  \
7815     Petrol           1.6  122231 km        4.0        Manual   
16992    Petrol           1.6  200000 km        4.0        Manual   
4776     Petrol     1.8 Turbo   41000 km        4.0     Automatic   
13419    Petrol           1.5  172800 km        4.0     Automatic   
14642    Petrol             0  196800 km        6.0     Automatic   

      Drive wheels   Doors       Wheel  Airbags  
7815         Front  04-May  Left wheel        4  
16992        Front  04-May  Left wheel        2  
4776         Front  04-May  Left wheel        8  
13419        Front  04-May  Left wheel       12  
14642         Rear  04-May  Left wheel       12  
             ID     Price  Levy   Manufacturer              Model  Prod. year  \
14839  45792307    297930     -     LAND ROVER  Range Rover Vogue        2019   
5008   45810285    308906  1694        PORSCHE                911        2016   
1225   45795524    627220     -  MERCEDES-BENZ     G 65 AMG 63AMG        2020   
8541   45761204    872946  2067    LAMBORGHINI               Urus        2019   
16983  45812886  26307500     -           OPEL              Combo        1999   

          Category Fuel type Engine volume   Mileage  Cylinders Gear box type  \
14839         Jeep    Diesel     3.0 Turbo   4500 km        8.0     Tiptronic   
5008         Coupe    Petrol             4   8690 km        6.0     Automatic   
1225          Jeep    Petrol     6.3 Turbo      0 km        8.0     Tiptronic   
8541     Universal    Petrol             4   2531 km        8.0     Tiptronic   
16983  Goods wagon    Diesel           1.7  99999 km        4.0        Manual   

      Drive wheels   Doors       Wheel  Airbags  
14839          4x4  04-May  Left wheel       12  
5008          Rear  02-Mar  Left wheel       12  
1225           4x4  04-May  Left wheel       12  
8541           4x4  04-May  Left wheel        0  
16983        Front  02-Mar  Left wheel        0  

Работа с данными - работа с элементами

In [20]:
print(df["Model"])

print(df.loc[100])

print(df.loc[100, "Price"])

print(df.loc[100:200, ["Model", "Price"]])

print(df[0:3])

print(df.iloc[0])

print(df.iloc[3:5, 0:2])

print(df.iloc[[3, 4], [0, 1]])
0         RX 450
1        Equinox
2            FIT
3         Escape
4            FIT
          ...   
19232    CLK 200
19233     Sonata
19234     Tucson
19235    Captiva
19236     Sonata
Name: Model, Length: 19237, dtype: object
ID                    45809760
Price                     2901
Levy                       473
Manufacturer         CHEVROLET
Model                    Cruze
Prod. year                2014
Category                 Sedan
Leather interior           Yes
Fuel type               Petrol
Engine volume              1.4
Mileage               80827 km
Cylinders                  4.0
Gear box type        Automatic
Drive wheels             Front
Doors                   04-May
Wheel               Left wheel
Color                    Green
Airbags                     12
Name: 100, dtype: object
2901
        Model  Price
100     Cruze   2901
101       911    706
102    Fusion    314
103    GX 460  15681
104  Sprinter  26657
..        ...    ...
196    Sonata    706
197     E 350   5802
198     Camry  25716
199   Orlando  14426
200     RAV 4  10820

[101 rows x 2 columns]
         ID  Price  Levy Manufacturer    Model  Prod. year   Category  \
0  45654403  13328  1399        LEXUS   RX 450        2010       Jeep   
1  44731507  16621  1018    CHEVROLET  Equinox        2011       Jeep   
2  45774419   8467     -        HONDA      FIT        2006  Hatchback   

  Leather interior Fuel type Engine volume    Mileage  Cylinders  \
0              Yes    Hybrid           3.5  186005 km        6.0   
1               No    Petrol             3  192000 km        6.0   
2               No    Petrol           1.3  200000 km        4.0   

  Gear box type Drive wheels   Doors             Wheel   Color  Airbags  
0     Automatic          4x4  04-May        Left wheel  Silver       12  
1     Tiptronic          4x4  04-May        Left wheel   Black        8  
2      Variator        Front  04-May  Right-hand drive   Black        2  
ID                    45654403
Price                    13328
Levy                      1399
Manufacturer             LEXUS
Model                   RX 450
Prod. year                2010
Category                  Jeep
Leather interior           Yes
Fuel type               Hybrid
Engine volume              3.5
Mileage              186005 km
Cylinders                  6.0
Gear box type        Automatic
Drive wheels               4x4
Doors                   04-May
Wheel               Left wheel
Color                   Silver
Airbags                     12
Name: 0, dtype: object
         ID  Price
3  45769185   3607
4  45809263  11726
         ID  Price
3  45769185   3607
4  45809263  11726

Работа с данными - отбор и группировка

In [24]:
s_values = df["Manufacturer"].unique()
print(s_values)

s_total = 0
for s_value in s_values:
    count = df[df["Manufacturer"] == s_value].shape[0]
    s_total += count
    print(s_value, "count =", count)
print("Total count = ", s_total)

print(df.groupby(["Model", "Category"]).size().reset_index(name="Count"))  # type: ignore
['LEXUS' 'CHEVROLET' 'HONDA' 'FORD' 'HYUNDAI' 'TOYOTA' 'MERCEDES-BENZ'
 'OPEL' 'PORSCHE' 'BMW' 'JEEP' 'VOLKSWAGEN' 'AUDI' 'RENAULT' 'NISSAN'
 'SUBARU' 'DAEWOO' 'KIA' 'MITSUBISHI' 'SSANGYONG' 'MAZDA' 'GMC' 'FIAT'
 'INFINITI' 'ALFA ROMEO' 'SUZUKI' 'ACURA' 'LINCOLN' 'VAZ' 'GAZ' 'CITROEN'
 'LAND ROVER' 'MINI' 'DODGE' 'CHRYSLER' 'JAGUAR' 'ISUZU' 'SKODA'
 'DAIHATSU' 'BUICK' 'TESLA' 'CADILLAC' 'PEUGEOT' 'BENTLEY' 'VOLVO' 'სხვა'
 'HAVAL' 'HUMMER' 'SCION' 'UAZ' 'MERCURY' 'ZAZ' 'ROVER' 'SEAT' 'LANCIA'
 'MOSKVICH' 'MASERATI' 'FERRARI' 'SAAB' 'LAMBORGHINI' 'ROLLS-ROYCE'
 'PONTIAC' 'SATURN' 'ASTON MARTIN' 'GREATWALL']
LEXUS count = 982
CHEVROLET count = 1069
HONDA count = 977
FORD count = 1111
HYUNDAI count = 3769
TOYOTA count = 3662
MERCEDES-BENZ count = 2076
OPEL count = 397
PORSCHE count = 54
BMW count = 1049
JEEP count = 138
VOLKSWAGEN count = 579
AUDI count = 255
RENAULT count = 37
NISSAN count = 660
SUBARU count = 275
DAEWOO count = 91
KIA count = 421
MITSUBISHI count = 289
SSANGYONG count = 441
MAZDA count = 183
GMC count = 15
FIAT count = 78
INFINITI count = 30
ALFA ROMEO count = 4
SUZUKI count = 76
ACURA count = 15
LINCOLN count = 15
VAZ count = 48
GAZ count = 12
CITROEN count = 9
LAND ROVER count = 49
MINI count = 48
DODGE count = 91
CHRYSLER count = 26
JAGUAR count = 42
ISUZU count = 4
SKODA count = 20
DAIHATSU count = 13
BUICK count = 16
TESLA count = 1
CADILLAC count = 14
PEUGEOT count = 17
BENTLEY count = 2
VOLVO count = 19
სხვა count = 2
HAVAL count = 1
HUMMER count = 5
SCION count = 7
UAZ count = 12
MERCURY count = 4
ZAZ count = 2
ROVER count = 3
SEAT count = 2
LANCIA count = 1
MOSKVICH count = 4
MASERATI count = 4
FERRARI count = 2
SAAB count = 2
LAMBORGHINI count = 1
ROLLS-ROYCE count = 2
PONTIAC count = 1
SATURN count = 1
ASTON MARTIN count = 1
GREATWALL count = 1
Total count =  19237
        Model   Category  Count
0      09-Mar      Sedan      2
1         100       Jeep      2
2      100 NX      Sedan      1
3        1000       Jeep      6
4        1000      Sedan     11
...       ...        ...    ...
2053    macan       Jeep      1
2054    macan      Sedan      1
2055  macan S       Jeep      1
2056       tC      Coupe      3
2057       xD  Hatchback      3

[2058 rows x 3 columns]

Визуализация - Исходные данные

In [26]:
data = df[["Manufacturer", "Model", "Levy"]].copy()
data.dropna(subset=["Levy"], inplace=True)
print(data)
        Manufacturer    Model  Levy
0              LEXUS   RX 450  1399
1          CHEVROLET  Equinox  1018
2              HONDA      FIT     -
3               FORD   Escape   862
4              HONDA      FIT   446
...              ...      ...   ...
19232  MERCEDES-BENZ  CLK 200     -
19233        HYUNDAI   Sonata   831
19234        HYUNDAI   Tucson   836
19235      CHEVROLET  Captiva  1288
19236        HYUNDAI   Sonata   753

[19237 rows x 3 columns]

Визуализация - Сводка пяти чисел

No description has been provided for this image
In [45]:
def q1(x):
    return x.quantile(0.25)


# median = quantile(0.5)
def q2(x):
    return x.quantile(0.5)


def q3(x):
    return x.quantile(0.75)


def iqr(x):
    return q3(x) - q1(x)


def low_iqr(x):
    return max(0, q1(x) - 1.5 * iqr(x))


def high_iqr(x):
    return q3(x) + 1.5 * iqr(x)

quantiles = df[["Manufacturer", "Prod. year"]].groupby(["Manufacturer"]).aggregate(["min", q1, q2, "median", q3, "max"])
print(quantiles)

iqrs = (
    df[["Manufacturer", "Prod. year"]].groupby(["Manufacturer"]).aggregate([low_iqr, iqr, high_iqr])
)
print(iqrs)

df.boxplot(column="Prod. year", by="Manufacturer")
             Prod. year                                        
                    min       q1      q2  median       q3   max
Manufacturer                                                   
ACURA              2001  2010.00  2012.0  2012.0  2014.00  2015
ALFA ROMEO         2001  2001.00  2003.0  2003.0  2007.00  2013
ASTON MARTIN       2007  2007.00  2007.0  2007.0  2007.00  2007
AUDI               1995  2010.00  2013.0  2013.0  2014.00  2018
BENTLEY            2012  2013.00  2014.0  2014.0  2015.00  2016
...                 ...      ...     ...     ...      ...   ...
VAZ                1974  1986.00  1995.5  1995.5  2004.25  2018
VOLKSWAGEN         1980  2003.00  2012.0  2012.0  2014.00  2019
VOLVO              1993  2000.50  2006.0  2006.0  2010.50  2014
ZAZ                1989  1989.25  1989.5  1989.5  1989.75  1990
სხვა               2005  2005.50  2006.0  2006.0  2006.50  2007

[65 rows x 6 columns]
             Prod. year                 
                low_iqr    iqr  high_iqr
Manufacturer                            
ACURA          2004.000   4.00  2020.000
ALFA ROMEO     1992.000   6.00  2016.000
ASTON MARTIN   2007.000   0.00  2007.000
AUDI           2004.000   4.00  2020.000
BENTLEY        2010.000   2.00  2018.000
...                 ...    ...       ...
VAZ            1958.625  18.25  2031.625
VOLKSWAGEN     1986.500  11.00  2030.500
VOLVO          1985.500  10.00  2025.500
ZAZ            1988.500   0.50  1990.500
სხვა           2004.000   1.00  2008.000

[65 rows x 3 columns]
Out[45]:
<Axes: title={'center': 'Prod. year'}, xlabel='Manufacturer'>
No description has been provided for this image

Визуализация - Гистограмма

In [52]:
df.plot.hist(column=["Prod. year"], bins=80)
Out[52]:
<Axes: ylabel='Frequency'>
No description has been provided for this image

Визуализация - Точечная диаграмма

In [58]:
df.plot.scatter(x="Fuel type", y="Category")
Out[58]:
<Axes: xlabel='Fuel type', ylabel='Category'>
No description has been provided for this image

Визуализация - Столбчатая диаграмма

In [62]:
plot = df.groupby(["Category", "Gear box type"]).size().unstack().plot.bar(color=["pink", "green"])
plot.legend(["Automatic","Not automatic"])
Out[62]:
<matplotlib.legend.Legend at 0x173840b6240>
No description has been provided for this image

Визуализация - Временные ряды

In [78]:
from datetime import datetime
import matplotlib.dates as md

dt = pd.read_csv("../data/car_price_prediction.csv")
ts = dt[["Manufacturer","Price","Prod. year"]].copy()
tf = ts["Manufacturer"].unique()
ts["date"] = ts["Prod. year"].astype(str)
ts["date"] = ts.apply(lambda row: datetime.strptime(row["date"], "%Y"), axis=1)
ts.info()

print(ts)

plot = ts.plot.line(x="date", y="Price")
plot.xaxis.set_major_locator(md.DayLocator(interval=1))
plot.xaxis.set_major_formatter(md.DateFormatter("%Y"))
plot.tick_params(axis="x", labelrotation=90)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 19237 entries, 0 to 19236
Data columns (total 4 columns):
 #   Column        Non-Null Count  Dtype         
---  ------        --------------  -----         
 0   Manufacturer  19237 non-null  object        
 1   Price         19237 non-null  int64         
 2   Prod. year    19237 non-null  int64         
 3   date          19237 non-null  datetime64[ns]
dtypes: datetime64[ns](1), int64(2), object(1)
memory usage: 601.3+ KB
        Manufacturer  Price  Prod. year       date
0              LEXUS  13328        2010 2010-01-01
1          CHEVROLET  16621        2011 2011-01-01
2              HONDA   8467        2006 2006-01-01
3               FORD   3607        2011 2011-01-01
4              HONDA  11726        2014 2014-01-01
...              ...    ...         ...        ...
19232  MERCEDES-BENZ   8467        1999 1999-01-01
19233        HYUNDAI  15681        2011 2011-01-01
19234        HYUNDAI  26108        2010 2010-01-01
19235      CHEVROLET   5331        2007 2007-01-01
19236        HYUNDAI    470        2012 2012-01-01

[19237 rows x 4 columns]
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
Locator attempting to generate 32544 ticks ([-12802.0, ..., 19741.0]), which exceeds Locator.MAXTICKS (1000).
No description has been provided for this image