Jonah had no right to be angry that judgement didn’t fall
Jonah wasn't angry that judgement didn't fall, he was angry because of the Character of God, that God is merciful, slow to anger, repenting of evil, full of grace. Jonah WANTED Nineveh to fall, even after they repented, and was angry with God that He didn't smite them anyway.
And God repented over the evil which He spoke to do to [Nineveh], and He did it not. Yet this was evil to Jonah, a great evil, and he became angry with Him.
Jonah is displaying the opposite characteristics of God: Jonah is without mercy, quick to anger, etc Jonah was determining ("knowing") good and evil for himself, just like Adam and Eve in the garden. Jonah called God's mercy "a great evil". WOW! That's not the fruit of the spirit, it's a different fruit.
Jonah figured being angry with God meant that God would take his life (he would surely die). He even says to God "Take my soul away from me." Jonah still didn't really understand the character of God, he "knew" His character, but didn't understand it. God is not upset with anger (even towards Him), but with sin and disobedience.
Be ye angry, and sin not: let not the sun go down upon your wrath Ephesians 4:26
BTW, this is the Sign of Jonah to the wicked generation in Yeshua's day - just as Jonah preached that the city would fall and Nineveh repented, but Jonah was still hoping Nineveh would be destroyed - that was the message to Jerusalem... except a prophet GREATER than Jonah is "here" (in the Heart of the Earth), the sign of the Son of Man is a prophet preaching "Repent! The Reign of God is at hand!" Nineveh will rise up and judge the wicked generation because they repented.