Ինչպե՞ս գծել Timeseries-ի վրա հիմնված գծապատկերները՝ օգտագործելով Pandas-ը:


Մեր առօրյա կյանքում հաճախ հանդիպում ենք տարբեր ինտերակտիվ գրաֆիկական տվյալների: Մեր առօրյա աշխատանքային կյանքում կամ բիզնեսում մենք հանդիպում ենք մի քանի տվյալների հավաքածուների կամ գծապատկերների, որոնք օգնում են մեզ որոշումներ կայացնելու, ապագա կանխատեսումների և շատ ավելին: Տվյալների այդպիսի հավաքածուներից մեկը, որին մենք հանդիպում ենք մեր ամենօրյա հանդիպումների ժամանակ, ժամանակային շարքի տվյալներն են:

Տվյալների կամ տվյալների կետերի մի շարք, որոնք հավաքագրվում են ժամանակի կանոնավոր ընդմիջումներով, նման ժամանակային տվյալների հավաքածուն կոչվում է ժամանակային շարքի տվյալներ: Այս տվյալների հավաքածուները հավաքվում են ժամանակի ֆիքսված ընդմիջումներով: Պարզ օրինակ կարող է լինել մեր եղանակի տվյալները, կամ կարող են լինել ԷՍԳ զեկույցի տվյալները և այլն: Այս տվյալների հավաքածուները բոլորը ժամանակին ինդեքսավորվում են և գրանցվում են որոշակի ժամանակահատվածում:

Այս տվյալների վերլուծությունը և ապագա կամ ընթացիկ սցենարի կանխատեսումը այս տվյալների առաջնային շարժառիթն է: Սա այն դարձնում է տվյալների ամենատարածված ձևերից մեկը:

Այս հոդվածում մենք կփորձենք պարզել, թե ինչպես կարող ենք ուսումնասիրել կամ պատկերացնել այս տվյալների հավաքածուները՝ դրանք գծելով գծապատկերների մեջ՝ օգտագործելով Python-ում շատ հայտնի գրադարանը, որը կոչվում է Pandas: Կան մի քանի եղանակներ, որոնք մենք կարող ենք իրականացնել այս տվյալների հավաքածուները և արժեքավոր պատկերացումներ ձեռք բերել տվյալների վերաբերյալ: Ժամանակի վրա հիմնված տվյալների պատկերացումը գծապատկերների միջոցով շատ կարևոր է ժամանակավոր տվյալների հավաքածուներում պատկերացումներ ձեռք բերելու և միտումները հասկանալու համար:

Սկսել

Նախ, մենք պետք է համոզվենք, որ ունենք python-ով աշխատող համակարգ (նախընտրելի է 3.xx կամ ավելի բարձր տարբերակը): Քանի որ մենք աշխատում ենք Pandas գրադարանի և matplotlib-ի հետ, մենք պետք է պատրաստենք այս փաթեթները python-ի համար: Պարզ գործընթաց է պարզապես բացել cmd պատուհանը և գործարկել հրամանները.

pip install pandas
pip install matplotlib

Այս փաթեթները հետագայում մեր կոդում ներմուծելու համար մենք կարող ենք պարզապես օգտագործել ներմուծման հիմնաբառը հետևյալ կերպ.

import pandas as pd
import matplotlib.pyplot as plt

Ժամային շարքի տվյալների բեռնում

Այժմ, նախքան ժամանակային շարքի տվյալները գծագրելը, մեզ անհրաժեշտ են տվյալները: Այն կարող է լինել աղբյուրից կամ մենք կարող ենք ստեղծել և բեռնել այն Pandas DataFrame-ում: Կարևոր է ապահովել, որ տվյալները պարունակում են հատուկ սյունակ, որը ներկայացնում է ամսաթվի և ժամի մասին տեղեկատվությունը (ժամանակային շարքի տվյալները): Դուք կարող եք տվյալներ բեռնել տվյալների շրջանակում տարբեր աղբյուրներից, ինչպիսիք են .csv ֆայլը, վեբ apis-ը կամ տվյալների բազաները:

Եթե մենք ունենք data.csv անունով CSV ֆայլ, որը պարունակում է ժամանակային շարքի տվյալներ, մենք կարող ենք այն բեռնել հետևյալ կերպ.

data = pd.read_csv('data.csv', parse_dates=['timestamp_column'])

*Համոզվեք, որ «data.csv»-ը փոխարինել եք իրական ֆայլի ուղով, իսկ «timestamp_column»-ը՝ ժամանակի մասին տեղեկատվություն պարունակող սյունակի անունով՝ ըստ ձեր համակարգի անունների կամ ուղիների:

Ժամադրոշմը որպես ինդեքս սահմանելը

Համոզվելու համար, որ տվյալները ճիշտ են մշակվում ժամանակային շարքի տվյալների հավաքածուի համար, շատ կարևոր է սահմանել ժամանակի դրոշմակնիքի սյունակը որպես DataFrame-ի ինդեքս: Այս քայլը հիմնականում պանդաներին տեղեկացնելու համար է, որ մենք աշխատում ենք ժամանակային շարքերի տվյալների հետ: Դուք կարող եք սահմանել ժամանակի դրոշմը մեկ տողով.

data.set_index('timestamp_column', inplace=True)

*Հիշեք, որ «timestamp_column»-ը փոխարինեք այն սյունակի անունով, որը պարունակում է ժամանակի մասին տեղեկատվություն ձեր տվյալների թերթիկում:

Օգտագործելով տվյալների հավաքածուի նմուշ

Այս հոդվածի համար մենք կստեղծենք Տվյալների հավաքածու՝ ցանկացած շփոթությունից խուսափելու համար, և մեր բոլոր արդյունքները հիմնված կլինեն հիմնականում այս տվյալների հավաքածուի վրա, ինչը նշանակում է, որ գծագրումը ցուցադրելու իրական կոդը սկսվում է այստեղից: Մենք կստեղծենք 10 տողերի և 4 սյունակների տվյալների հավաքածու: Ահա թե ինչպես ստեղծել մեկը.

import pandas as pd
ts_data = { 'Date': ['2022-01-01', '2022-02-01','2022-03-01', '2022-04-01',       '2022-05-01', '2022-06-01', '2022-07-01', '2022-08-01','2022-09-01', '2022-10-01'],
'A': [302, 404, 710, 484, 641, 669, 897, 994,1073, 944],'B': [849, 1488, 912, 855,        445, 752, 699, 1045, 1232, 974], 'C': [715, 355,284, 543, 112, 1052, 891, 776,      924, 786]}
dataframe = pd.DataFrame( ts_data,columns=[ 'Date', 'A', 'B', 'C'])
# Changing the datatype of Date
dataframe["Date"] = dataframe["Date"].astype("datetime64[ns]")
# Setting the Date as index
dataframe = dataframe.set_index("Date")
print(dataframe)

Արդյունք

               A     B     C
Date                        
2022-01-01   302   849   715
2022-02-01   404  1488   355
2022-03-01   710   912   284
2022-04-01   484   855   543
2022-05-01   641   445   112
2022-06-01   669   752  1052
2022-07-01   897   699   891
2022-08-01   994  1045   776
2022-09-01  1073  1232   924
2022-10-01   944   974   786

Պանդաների միջոցով ժամանակային շարքի տվյալների գծագրում

Կան մի քանի եղանակներ, որոնցով մենք կարող ենք իրականացնել կամ գծագրել այս տվյալների հավաքածուները python-ում՝ օգտագործելով պանդաները: Մենք ունենք գծային գծապատկերներ, գծային գծապատկերներ, Տարածքի և ցրման սյուժեներ և շատ ավելին:

Եկեք նայենք առջևում օգտագործվող հիմնական սյուժեներից մի քանիսին.

Գծային գծապատկերի գծում

Սա ժամանակային շարքերի տվյալների ներկայացման շատ տարածված եղանակ է: Այն ներկայացնում է X և Y երկու առանցքների միջև կապը, որոնք ցույց են տալիս գծով միացված տվյալների կետերը:

Pandas-ի և Matplotlib-ի միջոցով հիմնական գծային գծապատկեր ստեղծելու համար օգտագործեք հետևյալ կոդը.

import matplotlib.pyplot as plt
import pandas as pd
ts_data = { 'Date': ['2022-01-01', '2022-02-01','2022-03-01', '2022-04-01',       '2022-05-01', '2022-06-01', '2022-07-01', '2022-08-01','2022-09-01', '2022-10-01'],
'A': [302, 404, 710, 484, 641, 669, 897, 994,1073, 944],'B': [849, 1488, 912, 855,        445, 752, 699, 1045, 1232, 974], 'C': [715, 355,284, 543, 112, 1052, 891, 776,      924, 786]}
dataframe = pd.DataFrame( ts_data,columns=[ 'Date', 'A', 'B', 'C'])
# Changing the datatype of Date
dataframe["Date"] = dataframe["Date"].astype("datetime64[ns]")
# Setting the Date as index
dataframe = dataframe.set_index("Date")
dataframe.plot(figsize=(10, 6))
plt.title('Timeseries Data')
plt.xlabel('Time')
plt.ylabel('Value')
plt.show()

Արդյունք

* Նկարի չափը որոշում է գծապատկերի չափը, որի պիտակները կարող են համապատասխանաբար սահմանվել՝ փոխելով xlabel և ylabel արժեքները:

Գծապատկերի գծապատկեր

Գծավոր գծապատկերը ուղղանկյուն ձողերով տվյալների գրաֆիկական ներկայացումն է, որը համաչափորեն ներկայացնում է համապատասխան արժեքները: Այն ավելի հարմար է կատեգորիկ կամ դիսկրետ արժեքների հետ առնչվող ժամանակային շարքերի տվյալների ներկայացման համար: Մի առանցքը նշանակում է համեմատվող կատեգորիաները, իսկ մյուսը` համապատասխան արժեքները: Գծապատկեր ստեղծելու համար օգտագործեք հետևյալ կոդը.

Օրինակ

import matplotlib.pyplot as plt
import pandas as pd
ts_data = { 'Date': ['2022-01-01', '2022-02-01','2022-03-01', '2022-04-01',       '2022-05-01', '2022-06-01', '2022-07-01', '2022-08-01','2022-09-01', '2022-10-01'],
'A': [302, 404, 710, 484, 641, 669, 897, 994,1073, 944],'B': [849, 1488, 912, 855,        445, 752, 699, 1045, 1232, 974], 'C': [715, 355,284, 543, 112, 1052, 891, 776,      924, 786]}
dataframe = pd.DataFrame( ts_data,columns=[ 'Date', 'A', 'B', 'C'])
# Changing the datatype of Date
dataframe["Date"] = dataframe["Date"].astype("datetime64[ns]")
# Setting the Date as index
dataframe = dataframe.set_index("Date")
dataframe.plot(kind='bar', figsize=(10, 6))
plt.title('Timeseries Data')
plt.xlabel('Time')
plt.ylabel('Value')
plt.show()

Արդյունք

*Սա ընդամենը տվյալների օրինակելի շրջանակի ներկայացումն է:

Տարածքի գծապատկերի գծում

Տարածքային գծապատկերները օգտագործվում են ժամանակի ընթացքում տարբեր փոփոխականների մեծությունն ու համամասնությունը պատկերացնելու համար: Դրանք ստեղծվում են գծի հողամասի տակ գտնվող տարածքը լրացնելով: Օգտագործելով պանդաները, մենք ստեղծում ենք այնպիսի սյուժեներ, ինչպիսիք են.

Օրինակ

import matplotlib.pyplot as plt
import pandas as pd
ts_data = { 'Date': ['2022-01-01', '2022-02-01','2022-03-01', '2022-04-01',       '2022-05-01', '2022-06-01', '2022-07-01', '2022-08-01','2022-09-01', '2022-10-01'],
'A': [302, 404, 710, 484, 641, 669, 897, 994,1073, 944],'B': [849, 1488, 912, 855,        445, 752, 699, 1045, 1232, 974], 'C': [715, 355,284, 543, 112, 1052, 891, 776,      924, 786]}
dataframe = pd.DataFrame( ts_data,columns=[ 'Date', 'A', 'B', 'C'])
# Changing the datatype of Date
dataframe["Date"] = dataframe["Date"].astype("datetime64[ns]")
# Setting the Date as index
dataframe = dataframe.set_index("Date")
dataframe.plot(kind='area', figsize=(10, 6))
plt.title('Timeseries Data')
plt.xlabel('Time')
plt.ylabel('Value')
plt.show()

Արդյունք

Հողամասերի ցրման հողամասեր

Ցրված գծապատկերները արդյունավետ են երկու շարունակական փոփոխականների փոխհարաբերությունները հասկանալու համար: Նրանք օգնում են մեզ հասկանալ միտումները, հարաբերակցությունները և կլաստերները տվյալների բազայից: Տվյալ տվյալների բազայից ցրման սյուժեներ ստեղծելու պարզ շարահյուսությունը հետևյալն է.

Օրինակ

import matplotlib.pyplot as plt
import pandas as pd
ts_data = { 'Date': ['2022-01-01', '2022-02-01','2022-03-01', '2022-04-01',       '2022-05-01', '2022-06-01', '2022-07-01', '2022-08-01','2022-09-01', '2022-10-01'],
'A': [302, 404, 710, 484, 641, 669, 897, 994,1073, 944],'B': [849, 1488, 912, 855,        445, 752, 699, 1045, 1232, 974], 'C': [715, 355,284, 543, 112, 1052, 891, 776,      924, 786]}
dataframe = pd.DataFrame( ts_data,columns=[ 'Date', 'A', 'B', 'C'])
# Changing the datatype of Date
dataframe["Date"] = dataframe["Date"].astype("datetime64[ns]")
# Setting the Date as index
dataframe = dataframe.set_index("Date")
dataframe.plot(kind='scatter', x='A', y='B', figsize=(10, 6))
plt.title('Scatter Plot')
plt.xlabel('A')
plt.ylabel('B')
plt.show()

Արդյունք

Ժամանակային շարքերի սյուժեների անհատականացում

Pandas-ը և Matplotlib-ը մեզ տալիս են ճկունություն, որտեղ մենք կարող ենք հարմարեցնել մեր ժամանակային շարքերի սյուժեները: Դուք կարող եք հարմարեցնել ասպեկտները, ներառյալ գծերի ոճերը, մարկերների ոճերը, գունային սխեմաները և առանցքի ձևաչափումը:

Եկեք արագ ուսումնասիրենք անհատականացման մի քանի տարբերակներ, մենք կփորձենք պարզ փոփոխություններ կատարել.

Օրինակ

import matplotlib.pyplot as plt
import pandas as pd
ts_data = { 'Date': ['2022-01-01', '2022-02-01','2022-03-01', '2022-04-01',       '2022-05-01', '2022-06-01', '2022-07-01', '2022-08-01','2022-09-01', '2022-10-01'],
'A': [302, 404, 710, 484, 641, 669, 897, 994,1073, 944],'B': [849, 1488, 912, 855,        445, 752, 699, 1045, 1232, 974], 'C': [715, 355,284, 543, 112, 1052, 891, 776,      924, 786]}
dataframe = pd.DataFrame( ts_data,columns=[ 'Date', 'A', 'B', 'C'])
# Changing the datatype of Date
dataframe["Date"] = dataframe["Date"].astype("datetime64[ns]")
# Setting the Date as index
dataframe = dataframe.set_index("Date")
dataframe.plot(figsize=(10, 6), linewidth=2, linestyle='--', marker='o', markersize=5, color='red')
plt.title('Customized Timeseries Plot')
plt.xlabel('Time')
plt.ylabel('Value')
plt.grid(True)  # Add grid lines
plt.legend(['Data'], loc='upper right')  # Add legend
plt.show()

Արդյունք

*Մենք այստեղ հարմարեցրել ենք տողի լայնությունը, տողի ոճը, նշիչի ոճը, նշիչի չափը, գույնը, ցանցի գծերը և լեգենդը

Եզրակացություն

Ժամանակային շարքի տվյալները շատ կարևոր են և լայնորեն օգտագործվում են հետազոտության և վերլուծության համար: Պանդաները մեզ հնարավորություն են տալիս պատկերացնել և վերլուծել այս տվյալների հավաքածուները՝ իմաստալից արդյունքներ ստանալու համար:

Այս հոդվածում մենք ուսումնասիրել ենք տարբեր գծապատկերներ, որոնք հասանելի են Pandas-ում և Matplotlib-ում՝ ժամանակային շարքերի տվյալները պատկերացնելու համար: Մենք ծածկել ենք տարածքի գծապատկերներ, ցրված սյուժեներ, բարակ և գծային գծապատկերներ: Գծապատկերների յուրաքանչյուր տեսակ ունի յուրահատուկ նպատակ և կարող է հիանալի պատկերացում կազմել ձեր տվյալների հավաքածուի վերաբերյալ:

Բացահայտեք պանդաների հսկայական գրադարանը, ստուգեք ժամանակային շարքի քայքայումը, շարժվող միջոցները և մի քանի վերլուծական և վիզուալ գործիքներ, որոնք ապահովում են: Python-ը և գրադարանների նրա հզորությունը այն իսկապես դարձնում են լեզու մշակողների և վերլուծաբանների համար: