Civisualize: Creating Your Own Visualization concept question
for creating a new visualisation, you only need to add a template into template/dataviz indeed.

You will need to fetch some data to display it. They are two ways for that, either you are lucky and what you need can be taken with an existing API, and you simply have to

var data={crmAPI entity="Something" param1="42"}


but more often than not, you will want to aggregate data or do more sql massaging, in that case, you will need to create an extra queries/lizzy.sql

and then you can use it as 

var data={crmSQL query=lizzy}


and voila ;)