In R you can use the Bioconductor package karyoploteR to create the ideogram and plot the genes. You can plot all genes individually (either as regions or as points...) or compute the gene density over the genome using a non-overlapping sliding window, using kpPlotDensity. To create this plot you'll need to have the BSgenome.Osativa.MSU.MSU7 package installed, wich would not be necessary for human, mouse and some other organisms.
As an example we can create 5000 random "genes" and plot them. Above the ideograms we'll plot the gene density and below them the actual genes using a semitransparent color to show the accumulation of genes in certain regions.
#Create 5000 regions as mock genes
genes <- createRandomRegions(5000, length.mean=3000, genome="MSU7")
kp <- plotKaryotype(genome="MSU7", plot.type=2, cex=1.6)
kp <- kpPlotDensity(kp, data=genes, col="dodgerblue")
kpAxis(kp, ymin=0, ymax=kp$latest.plot$computed.values$max.density)
kpPlotRegions(kp, data=genes, data.panel=2, col="#00000044")
You can then customize the appearance of this plot, change its colors, etc... and combine it with any other karyoploteR function. You can find all the information needed in the karyoploteR tutorial