Zakk  
                
               
                 
              
                  
                    August 28, 2018,  8:50am
                   
                   
              1 
               
             
            
              Hello everyone, newbie here.
I asked a stupid question in Stackflow and got no answers so I hope I can get the answers here. 
https://stackoverflow.com/questions/52047884/similar-to-seaborns-hue-function-in-plotly 
I found most tutorials of plotly is about typing individual traces for each data which is time exhausting and not necessary. I know there must be a solution to simplify this problem.
             
            
               
               
               
            
                
            
           
          
            
            
              Hi @Zakk ,
No, there’s nothing directly analogous to hue in plotly.py.  This is something you could accomplish in ~3 lines with a pandas groupby though.  If you’re interested in that approach please post some sample data and I can show you what that would look like.
-Jon
             
            
               
               
               
            
            
           
          
            
              
                Zakk  
                
               
              
                  
                    August 28, 2018, 10:10am
                   
                   
              3 
               
             
            
              Hi, thank you for your support. Here is my one drive link for this dataset. 
https://1drv.ms/u/s!AqCVxdu-hfBSgakprttgWHDVQTtprw 
             
            
               
               
               
            
            
           
          
            
            
              Hi @Zakk ,
Here’s that pandas groupby approach I was referring to:
for region, geo_region in geo.groupby('Geographical region'):
    fig.add_scatter(x=geo_region.Year, y=geo_region.Number, name=region, mode='lines')
 
And here’s the complete code block:
import plotly.graph_objs as go
import pandas as pd
from plotly.offline import iplot, init_notebook_mode
init_notebook_mode()
geo = pd.read_csv('my_output')
fig = go.Figure()
for region, geo_region in geo.groupby('Geographical region'):
    fig.add_scatter(x=geo_region.Year, y=geo_region.Number, name=region, mode='lines')
iplot(fig)
 
Note that in the live version the legend has a scroll bar, that’s why not all of the regions show up in this static image.  If you need all of the regions to show up statically, then just increase the layout.height property of the figure.
Hope that helps! 
-Jon
             
            
               
               
               
            
                
            
           
          
            
              
                Zakk  
                
               
                 
              
                  
                    August 29, 2018, 10:08am
                   
                   
              5 
               
             
            
              
 jmmease:
 
import plotly.graph_objs as go import pandas as pd from plotly.offline import iplot, init_notebook_mode init_notebook_mode() geo = pd.read_csv(‘my_output’) fig = go.Figure() for region, geo_region in geo.groupby(‘Geographical region’): fig.add_scatter(x=geo_region.Year, y=geo_region.Number, name=region, mode=‘lines’) iplot(fig)
 
 
Hi Jon,
Thank you so much for your reply but still, some error pop up:
             
            
               
               
               
            
            
           
          
            
            
              Hi @Zakk , I forgot to ask what version of plotly.py you’re using. My answer above is for version 3 only.  Here’s a version that’s compatible with both versions 2 and 3.
traces = []
for region, geo_region in geo.groupby('Geographical region'):
    traces.append(go.Scatter(x=geo_region.Year, y=geo_region.Number, name=region, mode='lines'))
fig = go.Figure(data=traces)
 
-Jon
             
            
               
               
               
            
            
           
          
            
              
                Zakk  
                
               
              
                  
                    August 29, 2018, 10:47am
                   
                   
              7 
               
             
            
              Problem solved!! To me, the old version looks better. And I have to admit that I should understand more about the for loop. Thank you again, Jon.
             
            
               
               
              1 Like 
            
            
           
          
            
              
                thoo  
                
               
              
                  
                    February 18, 2019,  5:55am
                   
                   
              8 
               
             
            
              Hi @jmmease  , 
Thanks for your solution.  How can I use this for subplots? For instances, I have traces_1, traces_2.
traces = []
for region, geo_region in geo.groupby('Geographical region'):
    traces.append(go.Scatter(x=geo_region.Year, y=geo_region.Number, name=region, mode='lines'))
fig = go.Figure(data=traces)
 
I am trying to add like
fig = tools.make_subplots(rows=1, cols=2)
fig.append_trace(traces_1, 1, 1)
fig.append_trace(traces_2, 1, 2)
 
but it is not working because traces_1 is a list of traces. Is there anyway to make it work? Thanks.
             
            
               
               
               
            
            
           
          
            
              
                jmmease  
                
               
              
                  
                    February 18, 2019, 10:53am
                   
                   
              9 
               
             
            
              Hi @thoo ,
I think you should be able to loop over your traces_1 and traces_2 lists.
fig = tools.make_subplots(rows=1, cols=2)
for trace in traces_1:
    fig.append_trace(traces, 1, 1)
for trace in traces_2:
    fig.append_trace(traces, 1, 2)
 
Or, you could specify the lists to add_traces and pass the row/col indices as lists as well.
fig.add_traces(traces_1, rows=[1]*len(traces_1), cols=[1]*len(traces_1)
fig.add_traces(traces_2, rows=[1]*len(traces_2), cols=[2]*len(traces_2)
 
Hope that helps! 
-Jon
             
            
               
               
               
            
            
           
          
            
              
                thoo  
                
               
              
                  
                    February 18, 2019,  3:56pm
                   
                   
              10 
               
             
            
              Hi @jmmease , 
It works!!! Thanks for your help.
             
            
               
               
              1 Like 
            
            
           
          
            
              
                khsaleh  
                
               
              
                  
                    November 9, 2019,  7:53am
                   
                   
              11 
               
             
            
              Would you please send the sample data used in this post, (it was removed from the one drive link provided) Thank you
             
            
               
               
               
            
            
           
          
            
              
                khsaleh  
                
               
              
                  
                    November 9, 2019,  7:59am
                   
                   
              12 
               
             
            
              Would you please send the sample data used in this post, (it was removed from the one drive link provided) Thank you
             
            
               
               
               
            
            
           
          
            
              
                AIMPED  
                
                  Split this topic 
               
              
                  
                    April 28, 2023, 10:07am
                   
                   
              13 
               
             
            
              A post was split to a new topic: Help with a grouped bar chart