Question: Python Help: Plots are not appearing in the Spyder Console
0
gravatar for Wox
5 months ago by
Wox310
HUJI
Wox310 wrote:

I am going to analyze proteomics data in Python/Spyder. I did run below scripts in Jupyter and it did work fine. Why don't plots appear in the spyder console? Do these libraries only specific to Jupyter? What should I have to follow to get the scripts in Spyder

data

structure(list(Protein = structure(3:1, .Label = c("AOX", "Ppt", 
"Sdx"), class = "factor"), Peptide = structure(c(2L, 1L, 3L), .Label = c("EIEYPGQVLR", 
"GLAEFQQK", "TNTDFLPYNGDGFK"), class = "factor"), location = structure(c(2L, 
3L, 1L), .Label = c("Golgi", "Mito", "PEX"), class = "factor"), 
    WT_0t_1 = c(5204L, 5151L, 1135L), WT_0t_2 = c(2794L, 4256L, 
    656L), WT_0t_3 = c(1981L, 3270L, 449L), WT_1t_1 = c(4202L, 
    71366L, 9121L), WT_1t_2 = c(2382L, 44102L, 5389L), WT_1t_3 = c(2190L, 
    55854L, 6719L), WT_3t_1 = c(2060L, 51214L, 9330L), WT_3t_2 = c(2227L, 
    52466L, 9325L), WT_3t_3 = c(1829L, 85549L, 10915L), WT_5t_1 = c(1803L, 
    32629L, 7034L), WT_5t_2 = c(1683L, 38552L, 7947L), WT_5t_3 = c(2501L, 
    83839L, 10031L), wus2_0t_1 = c(4199L, 1604L, 1L), wus2_0t_2 = c(5443L, 
    5550L, 831L), wus2_0t_3 = c(5493L, 4509L, 870L), wus2_1t_1 = c(4540L, 
    18298L, 2863L), wus2_1t_2 = c(3105L, 9892L, 1660L), wus2_1t_3 = c(3801L, 
    15808L, 2550L), wus2_3t_1 = c(2822L, 51167L, 5752L), wus2_3t_2 = c(2286L, 
    26685L, 4859L), wus2_3t_3 = c(2596L, 25978L, 4894L), wus2_5t_1 = c(2058L, 
    22977L, 2619L), wus2_5t_2 = c(2068L, 20512L, 2681L), wus2_5t_3 = c(2309L, 
    27932L, 5662L), wus5_0t_1 = c(4573L, 2731L, 254L), wus5_0t_2 = c(6558L, 
    3924L, 0L), wus5_0t_3 = c(6618L, 4635L, 861L), wus5_1t_1 = c(6235L, 
    30751L, 4703L), wus5_1t_2 = c(2866L, 14198L, 2944L), wus5_1t_3 = c(4997L, 
    22038L, 3930L), wus5_3t_1 = c(2939L, 26945L, 4571L), wus5_3t_2 = c(4872L, 
    41267L, 4442L), wus5_3t_3 = c(4129L, 36632L, 6963L), wus5_5t_1 = c(3966L, 
    58892L, 10088L), wus5_5t_2 = c(2933L, 77223L, 7056L), wus5_5t_3 = c(2799L, 
    42703L, 8511L), wus7_0t_1 = c(4202L, 6298L, 311L), wus7_0t_2 = c(1871L, 
    3735L, 413L), wus7_0t_3 = c(2076L, 2092L, 193L), wus7_1t_1 = c(3492L, 
    19426L, 1586L), wus7_1t_2 = c(2659L, 18379L, 3616L), wus7_1t_3 = c(3097L, 
    22991L, 1806L), wus7_3t_1 = c(839L, 26725L, 4855L), wus7_3t_2 = c(3309L, 
    68651L, 7717L), wus7_3t_3 = c(2215L, 28616L, 4207L), wus7_5t_1 = c(776L, 
    26765L, 6191L), wus7_5t_2 = c(2460L, 105244L, 9085L), wus7_5t_3 = c(2431L, 
    97977L, 10984L), wus9_0t_1 = c(3152L, 4976L, 682L), wus9_0t_2 = c(3253L, 
    3826L, 0L), wus9_0t_3 = c(2818L, 5648L, 423L), wus9_1t_1 = c(1024L, 
    11057L, 2741L), wus9_1t_2 = c(2093L, 17916L, 1855L), wus9_1t_3 = c(1743L, 
    13561L, 2047L), wus9_3t_1 = c(2406L, 46471L, 6354L), wus9_3t_2 = c(1709L, 
    41807L, 4243L), wus9_3t_3 = c(2490L, 59844L, 6709L), wus9_5t_1 = c(2084L, 
    50857L, 8948L), wus9_5t_2 = c(1217L, 33163L, 6777L), wus9_5t_3 = c(1173L, 
    102291L, 13028L)), class = "data.frame", row.names = c(NA, 
-3L))

I have used below scripts for plotting, which perfectly work in Jupyter.

df.loc[df.location == 'Cytolsol_ribo', 'location'] = 'Cytosol_ribo'
df = df[df.location != 'Median']

df2 = df2.set_index(['location'])

df2 = df2.stack().to_frame()

df2 = df2.reset_index()

df2.columns = ['location', 'exp', 'val']
df2['mutant'], df2['time'], df2['replicate'] = df2.exp.str.split('_').str

df2 = df2.drop('exp', axis=1)
df2 = df2[['location', 'mutant', 'time', 'replicate', 'val']]

box_opts = opts.BoxWhisker(height=400,
                           width=700,
                           show_legend=False,
                           whisker_color='gray',
                           box_color=hv.dim('time'),
                           box_cmap='Category10')

g = df2.hvplot.box( y='val', by=['mutant', 'time'], groupby='location')

g.opts(box_opts)

I do not get the plots in the Spyder console. What may be the reason?

omics python • 682 views
ADD COMMENTlink written 5 months ago by Wox310
1

I am not familiar with Spyder. But if the plotting is done by matplotlib under the hood, I guess you may use plt.show() to visualize it. https://matplotlib.org/api/_as_gen/matplotlib.pyplot.show.html?highlight=show#matplotlib.pyplot.show

ADD REPLYlink modified 5 months ago • written 5 months ago by shoujun.gu280

Thanks, shoujun. I had a look. it doesn't work, unfortunately.

ADD REPLYlink modified 5 months ago • written 5 months ago by Wox310

looks like hvPlot using Bokeh under the hood. You may try something like: bokeh.plotting.show(g)

ADD REPLYlink written 5 months ago by shoujun.gu280

No luck shoujun, dosn't work

bokeh.plotting.show(g)
Traceback (most recent call last):

  File "<ipython-input-74-49d321d018a1>", line 1, in <module>
    bokeh.plotting.show(g)

NameError: name 'bokeh' is not defined
ADD REPLYlink written 5 months ago by Wox310
1

have you installed and imported bokeh?

ADD REPLYlink written 5 months ago by shoujun.gu280

Yes, But still I do not see plots appearing in the console

ADD REPLYlink written 5 months ago by Wox310
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 796 users visited in the last hour