Question: Python Help: Plots are not appearing in the Spyder Console
0
gravatar for Wox
12 months ago by
Wox340
HUJI
Wox340 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 • 2.3k views
ADD COMMENTlink written 12 months ago by Wox340
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 12 months ago • written 12 months ago by shoujun.gu310

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

ADD REPLYlink modified 12 months ago • written 12 months ago by Wox340

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

ADD REPLYlink written 12 months ago by shoujun.gu310

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 12 months ago by Wox340
1

have you installed and imported bokeh?

ADD REPLYlink written 12 months ago by shoujun.gu310

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

ADD REPLYlink written 12 months ago by Wox340
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: 1156 users visited in the last hour