As far as I know, you cannot cancel a transaction. Maybe someone else knows a way? You may be out of luck.
Indeed, a transaction doesn't get cancelled by request.
There are 2 options:
1. Wait until the network forgets / drops your transaction.
2. Double spend: Send a new transaction with the same inputs as the bad one, but send it to yourself and use a much higher fee so you make sure it gets confirmed.
The problem with [1] is that the wallet may re-broadcast the transaction. Some wallets do that, but I don't know which does and which doesn't.
To solve [1] you can make the wallet forget the transactions (-zapwallettxes option if you use Core wallet, you better backup it first).
For [2] you need the same "forgetting" and also either send out (to yourself) all your money, either ask somebody smarter than me to build a transaction for you with the correct inputs.
From what I know [1] may take 2 weeks after some changes in the newest Bitcoin Core and [2] may be very expensive.
Edit: for future reference, this thread is also very informative:
https://bitcointalk.org/index.php?topic=1802212.0