Is there a graphical data counter for Ubuntu that records how much uploaded/downloaded data was used and bandwidth being used and total amounts, filtering it by application?
You can use the program
nethogs from the standard repository for this.
sudo apt-get install nethogs
sudo nethogs (it requires root privileges to run)
This tracks the network usage of all processes while it is running. When it starts it shows the current rate at which everything is sending/receiving, but you can press 'm' to switch it to cumulative amounts (and further times to display it as kB/B/MB). It will split sent/received data as well as show you a cumulative total across all processes from the time at which it was run.
Try WireShark. Wireshark is a network tool that captures and analyzes packets off the wire. Wireshark can decode too many protocols.
For more information see WireShark's Website
To download and install click the image below.
This won't list by application, but it does make graphs, which seem to be important to you, and you can get a pretty good idea about which apps are being nethogs by looking at the IP addresses—your mail uplink would be your mail client, web sites would likely be your browser, etc.
sudo apt-get install darkstat
sudo darkstat -i wwan0 4288
Then just browse to
http://localhost:4288 to see the graphs.
The command above assumes you want to track your mobile broadband usage, and that your 3G/4G modem uses the
wwan0 interface. If you want to track wifi, try
wlan0, or type the command
ifconfig to see which interfaces are available—they're the alphanumeric strings flushed to the left.