In Grafana, there are few possibilities (but it requires some leg work). A user can use MySQL (as the data source) to visualize non-time series data on X axis. One can use PostgreSQL as well. For more info, read the blog below. Thanks for Sean Bradley.
https://medium.com/grafana-tutorials/graphing-non-time-series-sql-data-in-grafana-8a0ea8c55ee3
Grafana can graph Time Series data from many different types of data sources extremely well. But sometimes you just want to graph, simple non time series data. i.e. Data without timestamps, flat tables with regularly updated statistics or just simple lookup tables.
Example Non Time Series data as a flat table.

And you want to see this simple data, as graphs similar to below.

Grafana needs Time Series data to create graphs, so this is not immediately possible from Non Time Series data, but there is a way, and it's shown below, how you can do it.
To test this yourself, you should have a MySQL database and create a Data Source connection to it in Grafana. If you don’t have a MySQL database, but you do have a Grafana Server, then you can follow the instructions at https://sbcode.net/grafana/create-mysql-data-source/ to quickly install yourself a MySQL server and configure a MySQL data source inside Grafana.
Now to organize a simple flat table with some non time series data it.
On my MySQL server, we can have a schema named exampledb. In it let's create a table called flat_table_example
Open a MySQL prompt on your server, and create a table with this script
CREATE TABLE `exampledb`.`flat_table_example` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(45) DEFAULT NULL,
`total` decimal(10,0) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
Now, let's insert some data:
INSERT INTO `exampledb`.`flat_table_example`
(`username`,
`total`)
VALUES
('Cat',56),
('Dog',5),
('Lizard',4),
('Crocodile',2),
('Koala',50),
('Cassowary',2),
('Peacock',1),
('Emu',1),
('Kangaroo',1);
To check if the data exists, run the following:
SELECT * FROM ``exampledb`.`flat_table_example`;
**Now**, Open up your **Grafana UI**, **ensure** your **MySQL Data Source** has been **configured and connects**, then go to the Explore Tab.
Choose your MySQL data source, press the Edit SQL button

Replace the default SQL with this below,
SELECT username AS metric, total as value FROM flat_table_example ORDER BY id
And select Format As = Table to see your data as a table inside Grafana.

Now, this data is not Time Series data, it has no timestamp columns, so Grafana will not know how to graph it. So here is the trick,
Modify the SQL statement to be,
SELECT NOW() AS "time", username AS metric, total as value FROM flat_table_example ORDER BY id
And now the data has been converted to Time Series. Now, all rows have time stamps, are identical and update to show now every time the query is executed. You may think this is wrong, but it’s not, it’s perfect.

Grafana can now graph this data as a pretty graph.
Leave the Explore page now, go to Manage Dashboards, create a New Dashboard and Add Query
Select your MySQL data source, press the Edit SQL button just like before, paste the new SQL script into the text area. But this time, leave Format As = Time Series instead of Table

Now go to visualisation, select Bar Gauge. Straight away, you have this below.

You can select Orientation = Horizontal, and Field Unit = Percent (0-100)

You can select the basic Gauge visualisation to get this result below, and add yourself an extra Threshold

And even select the default Graph visualisation, but ensure you also select X-Axis Mode = Series

Video Tutorial
To see this video tutorial on Viewing Non Time Series Data in Grafana then visit,
https://youtu.be/Q6aw9oInsyw
Special Thanks to Sean B.
One other way is mentioned here for grouped charts:
https://github.com/gipong/grafana-groupedbarchart-panel