People are weird. I ran BF4 on medium settings with an rx 560 and was able to get 80 fps on 2560x1440. Unless you running 4k you dont need such a beefy card. Unless you want to.
the GTX1070 will run everything with good fps and graphics in almost every game. you probably cant set everything at ultra and 4k and still have 60 fps but 1920x1080 and high graphics on most games should be achiveable
The STRIX-GTX1060 will be your best bet for the "affordable" side of graphics cards. As pointed out by @Zantor64 cards have gone up in price due to miners (cards even bought used have gone up in price and could be sold for more than the price originally bought for). But the 1080 being voted up isn't a good idea as the 1060 6G will be able to run games at ease, unless you're a miner yourself but in that case shame on you. But seriously the 1060 is great for a mid-range PC build being around $400 (for now) vs a $1000 1080... seeing this is an "affordable" poll I'd advise the GTX1060 for obvious reasons
Mining is the exact reason why GPUs are so exorbitantly expensive. Prices have gone up over 200% in the last six months and the price won't drop until miners stop buying them in bulk.