0

I am a novice to python. I was trying to plot 2 D color plot using imshow(). Here, x axis is the time scale, yaxis is the energy and the colorbar z axis is the differential energy flux. When i plot somehow the y axis do not correspond to the actual value. I had tried using contourf as well as plotly heatmap. However I find though the results come correctly it does not have the same visual impact as imshow.

import matplotlib.pyplot as plt
from matplotlib import colors
import numpy as np
import matplotlib.dates as mdates
from mpl_toolkits.axes_grid1 import make_axes_locatable
import datetime as dt

x_lims = list(map(dt.datetime.utcfromtimestamp, [1266050102.1784432, 1266054264.5317998]))
x_lims = mdates.date2num(x_lims)

y1 = [3.1209615e+04, 2.6360914e+04, 2.0025836e+04, 1.5213330e+04, 1.1557158e+04,
      8.7796689e+03, 6.6698813e+03, 5.0668237e+03, 3.8490525e+03, 2.9246511e+03,
      2.2212300e+03, 1.6873538e+03, 1.2815887e+03, 9.7440747e+02, 7.3961621e+02,
      5.6149872e+02, 4.2719626e+02, 3.2432623e+02, 2.4669749e+02, 1.8716624e+02,
      1.4239874e+02, 1.0858500e+02, 8.2391251e+01, 6.2388748e+01, 4.7625000e+01,
      3.6195000e+01, 2.7622499e+01, 2.0478750e+01, 1.5716249e+01, 1.2382500e+01,
      9.0487499e+00, 7.1437497e+00]
y = np.array(y1)
y_lims = [y.min(), y.max()]

extent_lims = [x_lims[0], x_lims[1], y_lims[0], y_lims[1]]
z = flux_elec.T
fig, ax = plt.subplots()
im = ax.imshow(z, interpolation='none', extent=extent_lims, cmap='jet', aspect='auto')
date_format = mdates.DateFormatter('%H:%M')
ax.set_yscale('log')
ax.xaxis.set_major_formatter(date_format)
ax.xaxis_date()
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.05)
plt.colorbar(im, cax=cax, label="diff. en. flux")

[enter image description here](https://i.stack.imgur.com/Op1X7.png)

In this the high energy flux (8) should finish before 100 but its extending till 5000. I am unable to locate the error.

  • When working with log scale, you'll probably want to replace `imshow` by `pcolor`. See e.g. [Log x-scale in imshow](https://stackoverflow.com/questions/20837868/log-x-scale-in-imshow-matplotlib) – JohanC Feb 01 '23 at 12:10

0 Answers0