Swimming requires a higher rating of perceived exertion to achieve similar VO2s as anything on land that is weight bearing, such as running, but not cycling because cycling isn't weight bearing unless you stand up. So unless you are training to swim faster at high intensities with rest periods (intervals) much like you do in competitive swimming practices, you aren't burning as many calories. Plus, the more adept/skilled you get at swimming, the fewer calories you burn because you float more. It depends on whether your goals are to burn more calories (swimming doesn't burn as many as running and is tougher to do), or to cross train using your upper body for cardio, which is a great thing to do. Keep in mind, any calories burned during exercise are eaten back since they are glycogen calories. One hypothesis on why swimmers have higher body fat percentages than runners (outside of pure dietary measurement of calories and calories out) is that they perceive they burned more calories and therefore eat them back afterwards, whereas runners do not perceive they burned many calories and therefore don't eat them back as much as a swimmer does. This theory is more psychological than physiological.
That said, I still do it as a former swimmer to cross-train when my legs need rest days. It also is unique in that it is exercise in the horizontal position, which means the heart has to do even less work against gravity to pump blood throughout the body. This may explain why you can achieve higher heart rates with swimming, but that's not researched.