D_V_T_using_Power BI_Unit_2
D_V_T_using_Power BI_Unit_2
To design a system or feature that works with legacy .DAT files and incorporates
reporting, consider the following points. .DAT files typically store data in a flat or
serialized format, such as plain text, binary, or proprietary encoding. The process
involves reading, processing, and transforming the data into meaningful reports.
Here's how you can approach this:
def parse_binary_file(file_path):
with open(file_path, 'rb') as file:
content = file.read()
# Example: decode 4 integers and a string
record = struct.unpack('4s10s', content)
return record
4. Generate Reports
Use reporting tools or libraries to create reports in desired formats (PDF, Excel,
or web-based dashboards).
Tools:
Python: Libraries like pandas, matplotlib, and ReportLab.
Java: Libraries like JasperReports.
C#: Use Crystal Reports or Microsoft Reporting Services.
Example Report Generation in Python:
import pandas as pd
def generate_report(data):
df = pd.DataFrame(data, columns=['ID', 'Name', 'Attendance', 'Leave', 'Salary'])
df.to_csv('report.csv', index=False)
print("Report generated successfully!")
Here’s a database design for managing employee data and integrating .DAT file
parsing and reporting.
2. Attendance Table
Tracks attendance records.
Column Name Data Type Constraints Description
AttendanceID INT PRIMARY KEY Unique attendance record ID
References
EmployeeID INT FOREIGN KEY
Employee(EmployeeID)
Date DATE NOT NULL Date of attendance
Attendance status
Status VARCHAR(10) NOT NULL
(Present/Absent)
CheckInTime TIME NULLABLE Time the employee checked in
CheckOutTime TIME NULLABLE Time the employee checked out
3. Leave Table
Manages leave records.
Column
Data Type Constraints Description
Name
LeaveID INT PRIMARY KEY Unique leave record ID
EmployeeID INT FOREIGN KEY References Employee(EmployeeID)
LeaveType VARCHAR(20) NOT NULL Type of leave (e.g., Casual, Sick)
StartDate DATE NOT NULL Start date of leave
EndDate DATE NOT NULL End date of leave
DEFAULT Leave status
Status VARCHAR(20)
'Pending' (Pending/Approved/Rejected)
4. Salary Table
Stores salary-related details.
Column
Data Type Constraints Description
Name
PRIMARY
SalaryID INT Unique salary record ID
KEY
References
EmployeeID INT FOREIGN KEY
Employee(EmployeeID)
Month VARCHAR(10) NOT NULL Salary month (e.g., January)
Year INT NOT NULL Salary year
BasicPay DECIMAL(10, 2) NOT NULL Basic salary amount
Deductions DECIMAL(10, 2) NOT NULL Total deductions
NetPay DECIMAL(10, 2) NOT NULL Net salary amount
EmployeeID: Primary key in Employee and a foreign key in Attendance, Leave, and
Salary.
AttendanceID, LeaveID, and SalaryID: Serve as primary keys for their respective
tables.
Load Data:
Parse .DAT files using a script to extract employee, attendance, leave, and salary
data.
Insert or update records in the respective database tables.
Report Generation:
Power BI Report Designer is a tool within Microsoft Power BI that allows users to
create visually appealing, interactive reports and dashboards by transforming raw
data into meaningful insights. It provides a user-friendly interface with drag-and-
drop features to design reports, apply filters, and create visualizations. Here's an
overview of how it works and what it offers:
1. Data Sources
Power BI supports a wide range of data sources, including:
Databases (SQL Server, MySQL, PostgreSQL)
Cloud platforms (Azure, Google BigQuery)
Online services (SharePoint, Dynamics 365, Salesforce)
Files (Excel, CSV, JSON, .DAT)
APIs and custom connectors
You can connect to these data sources, import the data, and transform it for
analysis.
Before creating reports, you may need to clean or shape the data. The Power
Query Editor lets you:
Remove duplicates and handle missing values
Filter rows or columns
Perform data type conversions
Merge or split columns
Create calculated columns or measures
This ensures the data is in the correct format for analysis.
3. Modeling
4. Visualizations
5. Filters
6. Slicers
Slicers are interactive filters you add to a report for user-driven filtering. For
example:
A date slicer allows users to filter by a range of dates.
A dropdown slicer enables users to select specific categories (e.g., departments,
products).
7. Dashboards
9. Advanced Features
Drillthrough: Allows users to click on a data point to navigate to a detailed page.
Bookmarks: Save specific views of a report and navigate between them.
Row-Level Security (RLS): Restrict data visibility based on user roles.
Custom Tooltips: Add detailed information that appears when hovering over a
visual.
Example Workflow
Connect: Import employee data (e.g., .DAT files parsed into a database).
Transform: Clean data using Power Query Editor (e.g., format attendance data).
Model: Define relationships (e.g., EmployeeID linking multiple tables).
Visualize: Create charts for attendance trends, salary distribution, or leave usage.
Filter & Slicer: Allow users to filter by department, date range, or employee.
Publish: Share the report with stakeholders on Power BI Service.
Report Canvas?
The Report Canvas in Power BI is the main workspace where you design and build
reports. It provides a drag-and-drop interface to create visualizations, add filters,
and arrange report elements.
Here’s a detailed breakdown of the Report Canvas and how to effectively use it:
1. Canvas Area
This is the main workspace where you place and arrange your visualizations
(e.g., charts, graphs, slicers).
You can create multiple pages within a report. Each page appears as a tab at the
bottom of the canvas.
2. Fields Pane
3. Visualizations Pane
4. Filters Pane
Appears on the right side of the canvas below the Visualizations Pane.
Use it to apply filters at different levels:
Visual-level filters: Apply to a specific chart or graph.
Page-level filters: Apply to all visuals on a page.
Report-level filters: Apply across all pages in the report.
Example:
Add a Date filter to show only data for January 2025.
5. Pages Tabs
1. Add a Visualization
Click a visualization type from the Visualizations Pane.
Drag it onto the canvas.
Resize or reposition it as needed.
Example:
Add a bar chart to show monthly attendance.
3. Apply Filters
Add fields to the Filters Pane to narrow down the data displayed.
Set filter criteria (e.g., Department = HR or Date between 01/01/2025 and
01/31/2025).
1. Slicers
Interactive filters that users can manipulate on the canvas.
Add slicers to let users filter data by:
Date: A slider to select a date range.
Department: A dropdown to choose specific departments.
Example:
Add a Date Slicer to filter attendance trends for specific months.
2. Formatting Options
Select a visualization and use the Format Pane (paint roller icon) to customize:
Colors, fonts, borders, and background.
Data labels and tooltips.
Legend placement.
3. Tooltips
Configure tooltips to display additional details when users hover over a data
point.
Example: Hovering over a bar in a chart might show the employee name and
attendance percentage.
4. Drillthrough
Organize Layouts:
Use a logical arrangement (e.g., summary charts at the top, detailed tables
below).
Use grids to align visuals.
Consistent Themes:
Apply Power BI's built-in themes or create custom color palettes for a
professional look.
Interactive Features:
Creating report pages in Power BI involves organizing your data and visuals into
multiple tabs (pages) to make the report easier to navigate and understand.
Here's a step-by-step guide to creating and designing report pages:
Fields Pane
The Fields Pane is where all your data tables, columns, and calculated fields
(measures) are displayed. It allows you to control what data is included in your
report.
Drag-and-Drop Functionality:
Drag fields from the Fields Pane into visualizations, slicers, or filters on the
canvas.
Search Bar:
Use the search bar at the top to quickly locate a field by name.
Hide/Unhide Fields:
Right-click a field and select Hide to prevent it from appearing in the Fields Pane
for other report creators or viewers.
Manage Relationships:
Use the Model View to establish relationships between tables, ensuring proper
data linking.
UI Options in Power BI
1. Report Canvas
The workspace where you place visualizations, slicers, and text boxes.
Supports multiple pages, with tabs at the bottom for navigation.
2. Visualizations Pane
3. Filters Pane
4. Slicers
6. Insert Options
7. Interactivity Options
Cross-Filtering:
Enable interactions between visuals so selecting a data point in one chart
updates others.
Drillthrough:
Add a Drillthrough page to provide detailed insights (e.g., clicking on a
department leads to employee-level data).
Bookmarks:
Save specific views and toggle between them using buttons.
Visual interactions define how one visual on a report page influences others. By
default, when you select data in one visual, it can filter or highlight data in other
visuals on the page.
Types of Visual Interactions
Filter:
Highlight:
Highlights related data in other visuals while still displaying the full context.
Example: Clicking on a bar in a chart highlights corresponding data in a table,
while leaving non-related data dimmed.
None:
Removes any interaction between visuals, meaning a selection in one visual does
not affect others.
3. Test Interactions
Interact with the visuals on your report (e.g., click bars, slices, or data points).
Observe how other visuals respond:
Are they filtered, highlighted, or unaffected?
Adjust the interaction settings as needed for your report design.
Visuals:
Line Chart: Monthly Salary Trends.
Table: Individual Employee Salaries.
Interactions:
Clicking a specific month in the line chart filters the table to show salaries paid in
that month.
Visuals:
Pie Chart: Leave Types Distribution.
Matrix: Employee Leave Details.
Interactions:
Selecting "Sick Leave" in the pie chart filters the matrix to show only sick leave
records.
1. Cross-Highlighting
Works well with visuals that compare data across categories (e.g., bar charts, pie
charts).
Highlighting shows relationships between selected and unselected data.
Example:
Clicking "Marketing" in a bar chart highlights the "Marketing" portion in a pie
chart.
2. Slicers
3. Drillthrough
Use Drillthrough to navigate to detailed pages for a specific selection.
Example:
Right-click a department in a chart and go to a detailed Employee Attendance
page.
4. Bookmarks
Creating reports with multiple pages in Power BI or any reporting tool comes
with several advantages. This approach allows you to organize data logically,
improve report readability, and cater to diverse audiences. Below are the key
benefits:
2. Improved Usability
Multiple pages prevent clutter by reducing the number of visuals on a single
page.
Users can focus on specific insights without feeling overwhelmed by excessive
data.
7. Focused Insights
By dedicating each page to a specific topic, users can dive deep into the details
without distractions.
Example:
Attendance Page: Trends and detailed records.
Salary Page: Monthly payments, deductions, and summaries.
9. Scalability
Adding new sections or analyses is easier in a multi-page format.
Example:
Start with two pages (Overview and Details), then add more pages as the
business needs evolve (e.g., Forecasting, Comparisons).
Avoid default names like "Page 1" or "Page 2." Use meaningful titles like
"Attendance Summary" or "Monthly Salary."
Maintain uniform fonts, colors, and design elements across pages for a cohesive
look.
Group metrics logically so users can easily follow the data story.
Share the report with test users and gather feedback on page organization and
navigation.
3. Enhanced Decision-Making
Multiple visuals on one page allow decision-makers to analyze interconnected
metrics simultaneously.
Example:
A page with KPIs, trends, and detailed breakdowns helps executives make quick,
informed decisions.
6. Data Storytelling
Multiple visuals help tell a complete story by connecting different aspects of the
data.
Example:
A report page about employee performance might include:
KPI cards showing high-level metrics.
A scatter plot comparing attendance and productivity.
A table of individual employee details.
11. Time-Saving
Users don’t need to navigate between pages to view related insights, making it
faster to find and analyze data.
Example:
A page showing attendance, salary, and leave trends provides a comprehensive
view of employee-related data in one place.
Provide Interactivity:
Leverage Hierarchies:
Use hierarchies and drill-down options to reduce clutter while providing detailed
insights on demand.
Add Tooltips:
Test Layouts:
Test different layouts to find the best way to display multiple visuals without
overwhelming users.
1. File-Based Publishing
CSV/Excel Files: Exporting data as .csv or .xlsx files for distribution.
JSON/XML: Sharing structured data in formats suitable for APIs and web
consumption.
PDF Reports: Publishing fixed-format reports for end-users.
2. Database-Based Publishing
Database Views: Creating and sharing SQL views to provide controlled access to
data.
Database Replication: Publishing copies of data to other systems for analysis or
redundancy.
Query Builders: Allowing users to query and retrieve data from the database
with limited access (e.g., using tools like Power BI or Tableau).
3. API-Based Publishing
REST APIs: Providing endpoints for fetching, updating, or deleting data securely
over the web.
GraphQL: Offering flexible data querying capabilities by defining a schema that
clients can request.
Webhooks: Pushing updates to subscribers when data changes occur.
4. Web-Based Publishing
Dashboards: Using tools like Power BI, Tableau, or custom web applications to
provide real-time insights.
Public/Private Websites: Publishing data on websites or intranet portals with
appropriate access controls.
Data Portals: Platforms like CKAN or Socrata for publishing datasets, especially
for government or open-data projects.
5. Cloud Services
Cloud Data Warehouses: Publishing data to services like AWS Redshift, Google
BigQuery, or Azure Synapse for large-scale analytics.
File Sharing Services: Using platforms like Google Drive, OneDrive, or Dropbox
for collaboration.
Cloud APIs: Exposing cloud-stored data through managed APIs (e.g., AWS API
Gateway, Azure Functions).
Authentication
Use secure authentication mechanisms like OAuth, SAML, or JWT to ensure that
only authorized users can access and verify reports.
Implement multi-factor authentication (MFA) for added security.
Integrity Checks
Use checksum or hash values (e.g., SHA-256) to verify that the report has not
been altered during storage or transmission.
Compare the stored hash value of the original report with the hash of the
downloaded/received report.
Digital Signatures
Sign reports with a digital certificate (e.g., X.509) to verify their authenticity.
Recipients can verify the signature to ensure the report originates from a trusted
source and has not been tampered with.
Audit Trails
Encryption
Ensure data at rest and in transit is encrypted using SSL/TLS protocols and AES-
256 encryption for files.
Protect reports stored in cloud storage services (e.g., AWS S3, Google Cloud
Storage) with encryption.
Version Control
Access Control
Use role-based access control (RBAC) to limit who can generate, access, or verify
reports.
Leverage IAM (Identity and Access Management) tools provided by cloud
providers.
Include metadata such as timestamps, user IDs, and a unique report ID in every
generated report.
Optionally, include an embedded watermark for additional security.
Use a cloud storage service with encryption, access controls, and redundancy.
Example: AWS S3, Azure Blob Storage, or Google Cloud Storage.
Generate a Hash: Calculate a unique hash (e.g., SHA-256) for each report at the
time of generation.
Store Hash Separately: Store the hash in a secure database (e.g., DynamoDB,
Firestore) or blockchain for immutable records.
Verify on Retrieval: When a user downloads a report, calculate the hash again
and compare it to the stored value.
Automate Verification
Report Generation:
Generate a salary report (PDF/Excel) for employees and calculate its hash.
Digitally sign the report using a private key.
Cloud Storage:
Store the report in an encrypted S3 bucket and save its hash in a database.
Verification Process:
Result:
When designing GET DATA options for retrieving reports or datasets in your
system, the fields you expose and how you structure them depend on the use
case, data structure, and user requirements. Here's a structured list of common
report fields and options:
Filters allow users to specify what data they want included in the report:
Date Range:
Start Date
End Date
Employee Information:
Employee ID
Department
Designation
Location
Attendance Status:
Present
Absent
Late
Leave Type:
Paid Leave
Sick Leave
Casual Leave
Salary Components:
Basic Pay
Allowances
Deductions
Net Pay
Report Frequency:
Daily, Weekly, Monthly, or Custom range.
Sorting Options:
Sort by Employee Name, ID, Date, etc.
Grouping Options:
Group data by Department, Designation, or Location.
Pagination Options:
Limit: Number of rows per page.
Offset: Starting point for data retrieval.
Aggregation Options:
Total Attendance Hours
Average Salary
Leave Summary (e.g., total leaves by type).
When designing filter options for report views, the goal is to give users a flexible
way to narrow down and customize the data displayed in a report. Here are key
filter options to consider, categorized by use case, along with some design tips.
3. Visualization-Specific Filters
If your reports are displayed as charts, graphs, or tables:
Filter by Chart Type:
Bar Chart, Line Chart, Pie Chart, etc.
Data Aggregation:
Group by (e.g., Department, Date, Employee ID).
Sorting:
Sort by ascending/descending order of values like date, hours worked, or salary.
6. Example Implementation
Here’s an API request for a filtered report:
Endpoint:
GET /api/reports/attendance
Query Parameters:
?startDate=2025-01-01
&endDate=2025-01-31
&employeeId=E12345
&department=HR
&status=Present
Response:
{
"status": "success",
"data": [
{
"employeeId": "E12345",
"employeeName": "John Doe",
"date": "2025-01-02",
"checkInTime": "09:00 AM",
"checkOutTime": "05:00 PM",
"totalHoursWorked": 8,
"status": "Present"
},
...
]
}
To create a width-scale report design that efficiently uses databases and queries,
the goal is to present data with varying widths, representing different levels of
detail or aggregation (e.g., summarized vs. detailed data). Below is a detailed
guide for implementing such a design using databases and queries.
SELECT
d.DepartmentName,
COUNT(a.AttendanceID) AS TotalAttendance,
SUM(a.TotalHours) AS TotalHoursWorked
FROM
Departments d
JOIN
Employees e ON d.DepartmentID = e.DepartmentID
JOIN
Attendance a ON e.EmployeeID = a.EmployeeID
WHERE
a.Date BETWEEN '2025-01-01' AND '2025-01-31'
GROUP BY
d.DepartmentName;
Output:
Total
Department Name Total Hours Worked
Attendance
HR 120 960
IT 180 1440
SELECT
d.DepartmentName,
e.EmployeeID,
e.Name AS EmployeeName,
COUNT(a.AttendanceID) AS TotalDaysPresent,
SUM(a.TotalHours) AS TotalHoursWorked
FROM
Departments d
JOIN
Employees e ON d.DepartmentID = e.DepartmentID
JOIN
Attendance a ON e.EmployeeID = a.EmployeeID
WHERE
a.Date BETWEEN '2025-01-01' AND '2025-01-31'
GROUP BY
d.DepartmentName, e.EmployeeID, e.Name;
Output:
Department Employee Employee Total Days Total Hours
Name ID Name Present Worked
HR 101 John Doe 20 160
IT 102 Jane Smith 22 176
SELECT
e.EmployeeID,
e.Name AS EmployeeName,
d.DepartmentName,
a.Date,
a.CheckInTime,
a.CheckOutTime,
a.TotalHours,
a.Status
FROM
Employees e
JOIN
Departments d ON e.DepartmentID = d.DepartmentID
JOIN
Attendance a ON e.EmployeeID = a.EmployeeID
WHERE
a.Date BETWEEN '2025-01-01' AND '2025-01-31'
ORDER BY
d.DepartmentName, e.EmployeeID, a.Date;
Output:
Check-
Employee Employee Department Check- Total
Date Out Status
ID Name Name In Time Hours
Time
2025- 09:00 05:00
101 John Doe HR 8 Present
01-01 AM PM
Jane 2025- 09:15 06:00
102 IT 8.75 Present
Smith 01-01 AM PM
4. Implementation Tips
Dynamic Query Generation
Use dynamic query-building techniques to adjust the query based on the width
scale:
Wide Scale → Aggregated queries.
Medium Scale → Grouped queries.
Narrow Scale → Full detail queries.
Query Parameters
Allow users to input parameters such as:
Date Range
Department/Location
Employee ID
Report Type (Summary/Group/Detail)
Indexing
Use indexes on frequently filtered columns (e.g., Date, DepartmentID,
EmployeeID) to optimize query performance.
Materialized Views
Create materialized views for frequently accessed summary reports to improve
performance.
Query settings and data preloads navigation options and report refresh stacked
bar chart?
To implement query settings, data preload options, and a stacked bar chart with
report refresh functionality, you can design a system that combines backend
query optimization, dynamic data fetching, and frontend visualization. Here's a
detailed plan:
1. Query Settings
Query settings allow users to control how data is retrieved and displayed in the
reports.
Key Query Settings
Date Range:
Default: Current month.
Customizable via date pickers.
Data Grouping:
Options: By Department, Employee, Day, Week, or Month.
Aggregation Level:
Options: Summary, Grouped, Detailed.
Filters:
Department, Employee ID, Status (e.g., Active, Inactive), etc.
Sorting:
Options: Ascending/Descending by Date, Hours Worked, Total Salary, etc.
Limit and Pagination:
Options to limit rows or paginate results for large datasets.
Auto Refresh Interval:
Options: 1 min, 5 min, 15 min, or Manual.
Backend Implementation for Query Settings
Use dynamic query building based on user inputs.
Example:
SELECT
e.EmployeeID,
e.Name AS EmployeeName,
d.DepartmentName,
SUM(a.TotalHours) AS TotalHoursWorked,
a.Date
FROM
Employees e
JOIN
Departments d ON e.DepartmentID = d.DepartmentID
JOIN
Attendance a ON e.EmployeeID = a.EmployeeID
WHERE
a.Date BETWEEN :startDate AND :endDate
AND d.DepartmentName = :department
GROUP BY
a.Date, e.EmployeeID
ORDER BY
a.Date ASC;
Bind parameters (:startDate, :endDate, :department) to user settings
dynamically.
A stacked bar chart visualizes data with breakdowns of categories stacked on top
of each other. Include a refresh feature to update the chart data dynamically.
Key Features of the Stacked Bar Chart
X-Axis: Time-based (e.g., days, weeks, months).
Y-Axis: Value-based (e.g., hours worked, salary components).
Stacks: Data categories like departments, employees, or statuses.
Example Stacked Bar Chart: Attendance Data
HR IT
Date Sales Hours
Hours Hours
2025-01-01 40 50 30
2025-01-02 35 45 25
Backend Query for Stacked Data
SELECT
a.Date,
d.DepartmentName,
SUM(a.TotalHours) AS TotalHours
FROM
Attendance a
JOIN
Employees e ON a.EmployeeID = e.EmployeeID
JOIN
Departments d ON e.DepartmentID = d.DepartmentID
WHERE
a.Date BETWEEN :startDate AND :endDate
GROUP BY
a.Date, d.DepartmentName
ORDER BY
a.Date ASC;
Frontend Implementation
Chart Library: Use a library like Chart.js, D3.js, or Highcharts for rendering the
stacked bar chart.
Data Fetching:
Fetch data using an API endpoint when the user applies filters or refreshes the
chart.
Example API:
GET /api/reports/attendance-chart?startDate=2025-01-01&endDate=2025-01-
31
Refresh Functionality:
Add a "Refresh" button that triggers a data reload for the chart.
Example:
document.getElementById('refreshButton').addEventListener('click', () => {
fetch('/api/reports/attendance-chart?startDate=2025-01-01&endDate=2025-
01-31')
.then(response => response.json())
.then(data => {
chart.data.datasets = transformToDatasets(data);
chart.update();
});
});
Integrate the navigation options and filters into the chart view:
Navigation UI:
Filters: Dropdowns for departments, employees, and date range.
Refresh Button: Positioned above the chart.
Dynamic Chart Updates:
Update the chart dynamically when filters change.
Example Workflow
User selects a department (e.g., IT) and date range (e.g., 2025-01-01 to 2025-01-
31) in the navigation bar.
The backend fetches the filtered data using a query like:
SELECT
a.Date,
SUM(a.TotalHours) AS TotalHours,
d.DepartmentName
FROM
Attendance a
JOIN
Departments d ON a.DepartmentID = d.DepartmentID
WHERE
d.DepartmentName = 'IT' AND a.Date BETWEEN '2025-01-01' AND '2025-01-
31'
GROUP BY
a.Date;
A stacked column chart is a data visualization tool used to show the distribution
of values across categories and compare them while breaking down each category
into sub-components. The columns represent categories, and the stacked
segments within each column represent sub-categories.Use Cases:Visualizing
data with parts-to-whole relationships.Comparing totals across
categories.Understanding the contribution of sub-categories to the total.Key
Elements:X-Axis: Represents the categories.Y-Axis: Represents the values
(numeric scale).Stacks: Segments within each column showing sub-category
values.Example: Monthly Sales by RegionSuppose you have monthly sales data
for different regions (North, South, East, West).
MonthNort
hSouthEast
WestJanuary
5003002001
00February6
0040030020
0
A stacked column chart will display columns for each month, with each column
segmented by region.Would you like to:Generate the chart for specific data?Get
the Python/Excel/JavaScript code to create the chart?
Ans:
Clustered bar chart
Clustered column chart adding report titles
If you'd like a more formal report presentation or a focus mode format for your
chart, you can enhance the visuals and layout of the report. Here are some
possible adjustments:
1. Report Layout Enhancements
Add a Header and Footer: Include information like the company name, logo, and
date in the header, and page numbers or a summary in the footer.
Font Styling: Use professional fonts and adjust sizes for clarity.
Background Color: Add a subtle background to make the chart visually
appealing.
Chart Annotations: Add specific values, trends, or highlights directly on the chart.
2. Focus Mode for Charts
Minimalist View: Remove unnecessary elements (e.g., grid lines or legends) and
focus on the core data.
High Contrast Colors: Use distinct, high-contrast colors for clear visualization.
Single-Chart Emphasis: Center the chart in a larger space to draw attention to it.
--------------------------------------------------------------------------------------------------------
Chart Export OptionsExporting the chart as an image (PNG, JPG) or a vector file
(PDF, SVG).Saving the chart along with the polished report layout.