import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import NullFormatter
import plotly.express as px
import plotly.graph_objects as go
import arabic_reshaper
from bidi.algorithm import get_display
from matplotlib.ticker import MultipleLocator
# pip install nbconvert-webpdf
data=pd.read_excel(r'C:\Users\Desktop\employess.xlsx' ,sheet_name="Sheet1_")
data.columns
Index(['السنة', 'الربع ', 'الارباع', 'الذكور-سعودي', 'الاناث-سعودي', 'الإجمالي-سعودي', 'الذكور-غير سعودي', 'الاناث-غير سعودي', 'الإجمالي-غير سعودي', 'الذكور', 'الاناث', 'الإجمالي'], dtype='object')
#pip install NullFormatter
#pip install arabic_reshaper
#pip install python-bidi matplotlib
def f(x):
out=get_display(arabic_reshaper.reshape(x))
return (out)
data['1الارباع']=data['الارباع'].apply(f)
#data['1الارباع']
data.head()
السنة | الربع | الارباع | الذكور-سعودي | الاناث-سعودي | الإجمالي-سعودي | الذكور-غير سعودي | الاناث-غير سعودي | الإجمالي-غير سعودي | الذكور | الاناث | الإجمالي | 1الارباع | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2017 | 1 | الربع الأول 2017 | 1319732 | 540277 | 1860009 | 8246580 | 202750 | 8449330 | 9566312 | 743027 | 10309339 | 2017 ﻝﻭﻷﺍ ﻊﺑﺮﻟﺍ |
1 | 2017 | 2 | الربع الثاني 2017 | 1326485 | 545380 | 1871865 | 8134548 | 204382 | 8338930 | 9461033 | 749762 | 10210795 | 2017 ﻲﻧﺎﺜﻟﺍ ﻊﺑﺮﻟﺍ |
2 | 2017 | 3 | الربع الثالث 2017 | 1333552 | 556757 | 1890309 | 8004205 | 206642 | 8210847 | 9337757 | 763399 | 10101156 | 2017 ﺚﻟﺎﺜﻟﺍ ﻊﺑﺮﻟﺍ |
3 | 2017 | 4 | الربع الرابع 2017 | 1376418 | 605737 | 1982155 | 7741863 | 211755 | 7953618 | 9118281 | 817492 | 9935773 | 2017 ﻊﺑﺍﺮﻟﺍ ﻊﺑﺮﻟﺍ |
4 | 2018 | 1 | الربع الأول 2018 | 1367680 | 604401 | 1972081 | 7516298 | 216958 | 7733256 | 8883978 | 821359 | 9705337 | 2018 ﻝﻭﻷﺍ ﻊﺑﺮﻟﺍ |
x=data['الارباع']
y=data['الإجمالي']
# plotting line graph
fig = px.line(data, x = x, y =y, text=y)
# displaying data labels
fig.update_layout(
yaxis=dict(range=[0, max(y) + 10]), # Adjust max value as needed
#title="Scatter Plot with Y-axis Starting at Zero",
xaxis_title="الربع",
yaxis_title="إجمالي المشتركين"
)
fig.update_layout(width=1000, height=700) # Set figure size
fig.update_traces(texttemplate='%{text:.1s}', textposition='top center')
# displaying the graph
fig.show()
x=data['الارباع']
y=data['الإجمالي-سعودي']
# plotting line graph
fig = px.line(data, x = x, y =y, text=y)
# displaying data labels
fig.update_layout(
yaxis=dict(range=[0, max(y) + 10]), # Adjust max value as needed
#title="Scatter Plot with Y-axis Starting at Zero",
xaxis_title="الربع",
yaxis_title="إجمالي المشتركين السعوديين"
)
fig.update_layout(width=1000, height=700) # Set figure size
fig.update_traces(texttemplate='%{text:.1s}', textposition='top center')
# displaying the graph
fig.show()
x=data['الارباع']
y=data['الإجمالي-غير سعودي']
# plotting line graph
fig = px.line(data, x = x, y =y, text=y)
# displaying data labels
fig.update_layout(
yaxis=dict(range=[0, max(y) + 10]), # Adjust max value as needed
xaxis_title="الربع",
yaxis_title="إجمالي المشتركين غير السعوديين"
)
fig.update_layout(width=1000, height=700) # Set figure size
fig.update_traces(texttemplate='%{text:.1s}', textposition='top center')
# displaying the graph
fig.show()
x=data['الارباع']
# plotting line graph
y=data['الإجمالي-سعودي']
y1=data['الإجمالي-غير سعودي']
# Create figure
fig = go.Figure()
# Add first line
fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='إجمالي المشتركين السعوديين'))
# displaying data labels
fig.update_layout(
yaxis=dict(range=[0, max(y) + 10]), # Adjust max value as needed
xaxis_title="الربع",
yaxis_title="إجمالي المشتركين "
)
fig.update_traces(texttemplate='%{text:.1s}', textposition='top center')
# Add second line
fig.add_trace(go.Scatter(x=x, y=y1, mode='lines', name="إجمالي المشتركين غير السعوديين"))
# displaying data labels
fig.update_layout(
yaxis=dict(range=[0, max(y1) + 10]), # Adjust max value as needed
xaxis_title="الربع",
yaxis_title="إجمالي المشتركين"
)
fig.update_layout(width=1000, height=700) # Set figure size
# Show plot
fig.show()
data.columns
Index(['السنة', 'الربع ', 'الارباع', 'الذكور-سعودي', 'الاناث-سعودي', 'الإجمالي-سعودي', 'الذكور-غير سعودي', 'الاناث-غير سعودي', 'الإجمالي-غير سعودي', 'الذكور', 'الاناث', 'الإجمالي', '1الارباع'], dtype='object')
x=data['الارباع']
# plotting line graph
y=data['الذكور-سعودي']
y1=data['الذكور-غير سعودي']
# Create figure
fig = go.Figure()
# Add first line
fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='إجمالي المشتركين الذكور السعوديين'))
# displaying data labels
fig.update_layout(
yaxis=dict(range=[0, max(y) + 10]), # Adjust max value as needed
xaxis_title="الربع",
yaxis_title="إجمالي المشتركين "
)
fig.update_traces(texttemplate='%{text:.1s}', textposition='top center')
# Add second line
fig.add_trace(go.Scatter(x=x, y=y1, mode='lines', name="إجمالي المشتركين الذكور غير السعوديين"))
# displaying data labels
fig.update_layout(
yaxis=dict(range=[0, max(y1) + 10]), # Adjust max value as needed
xaxis_title="الربع",
yaxis_title="إجمالي المشتركين"
)
fig.update_layout(width=1000, height=700) # Set figure size
# Show plot
fig.show()
data.columns
Index(['السنة', 'الربع ', 'الارباع', 'الذكور-سعودي', 'الاناث-سعودي', 'الإجمالي-سعودي', 'الذكور-غير سعودي', 'الاناث-غير سعودي', 'الإجمالي-غير سعودي', 'الذكور', 'الاناث', 'الإجمالي', '1الارباع'], dtype='object')
# data.head()
x=data['الارباع']
# plotting line graph
y=data['الاناث-سعودي']
y1=data['الاناث-غير سعودي']
# Create figure
fig = go.Figure()
# Add first line
fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='إجمالي المشتركات الإناث السعوديات'))
# displaying data labels
fig.update_layout(
yaxis=dict(range=[0, max(y) + 5]), # Adjust max value as needed
xaxis_title="الربع",
yaxis_title="إجمالي المشتركات"
)
fig.update_traces(texttemplate='%{text:.1s}', textposition='top center')
# Add second line
fig.add_trace(go.Scatter(x=x, y=y1, mode='lines', name="إجمالي المشتركات الإناث غير السعوديات"))
# displaying data labels
fig.update_layout(
# Adjust max value as needed
xaxis_title="الربع",
yaxis_title="إجمالي المشتركات"
)
fig.update_layout(width=1000, height=700) # Set figure size
# Show plot
fig.show()
x=data['الارباع']
# plotting line graph
y=data['الاناث']
y1=data['الذكور']
# Create figure
fig = go.Figure()
# Add first line
fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='إجمالي المشتركات الإناث '))
# displaying data labels
fig.update_layout(
yaxis=dict(range=[0, max(y) + 5]), # Adjust max value as needed
xaxis_title="الربع",
yaxis_title="إجمالي المشتركات"
)
fig.update_traces(texttemplate='%{text:.1s}', textposition='top center')
# Add second line
fig.add_trace(go.Scatter(x=x, y=y1, mode='lines', name="إجمالي المشتركين الذكور"))
# displaying data labels
fig.update_layout(
yaxis=dict(range=[0, max(y) + 5]), # Adjust max value as needed
xaxis_title="الربع",
yaxis_title="إجمالي المشتركين"
)
fig.update_layout(width=1000, height=700) # Set figure size
# Show plot
fig.show()
data['women_part_all']=(data['الاناث']/data['الإجمالي'])*100
data['women_part_sa_all']=(data['الاناث-سعودي']/data['الإجمالي'])*100
data['women_part_sa_sa']=(data['الاناث-سعودي']/data['الإجمالي-سعودي'])*100
# data.set_index('1الارباع', inplace=True)
# data['YoY_Percent_Change'] = data['الإجمالي'].pct_change(periods=1) * 100
x=data['الارباع']
# plotting line graph
y=data['women_part_sa_sa']
# Create figure
fig = go.Figure()
# Add first line
fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='إجمالي المشتركات الإناث '))
# displaying data labels
fig.update_layout(
xaxis_title="الربع",
yaxis_title="% المشتركات السعوديات من إجمالي المشتركين السعوديين"
)
fig.update_traces(texttemplate='%{text:.1s}', textposition='top center')
fig.update_layout(width=1000, height=700) # Set figure size
# Show plot
fig.show()