# Change marker colors based on values - Python

**URL:** <https://community.plotly.com/t/change-marker-colors-based-on-values-python/27722>\
**Category:** 📊 Plotly Python\
**Created:** [August 24, 2019, 11:57am UTC](https://community.plotly.com/t/change-marker-colors-based-on-values-python/27722 "2019-08-24T11:57:47Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![rasika](https://avatars.discourse-cdn.com/v4/letter/r/a87d85/32.png) [@rasika](https://community.plotly.com/u/rasika)\
**Post date:** [August 24, 2019, 11:57am UTC](https://community.plotly.com/t/change-marker-colors-based-on-values-python/27722/1 "2019-08-24T11:57:47Z")

</div>

I want to change the marker colors based on values , so i tried the below piece of code

```
    import pandas as pd
    df = pd.read_csv("E:/values.csv")
    def SetColor(x):
        if(x < 100):
            return "orange"
        elif(100<= x <=200):
            return "white"
        elif(x > 200):
            return "black"

    import plotly.offline as pyo
    import plotly.graph_objs as go
    trace1 = go.Scatter(
                        x=df['Date'], y=df['Show1'], # Data
                        line = dict(color=list(map(SetColor, df['Show1']))),
                        mode='markers',name='Show1' # Additional options
                       )

    fig = go.Figure(data=[trace1], layout=layout)
    pyo.plot(fig,filename='final_plot.html')

```

But i am getting below error msge

```
    ValueError: 
        Invalid value of type 'builtins.list' received for the 'color' property of scatter.line
            Received value: ['black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'black', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange']

```

What am i missing here

---

<div class="post-metadata">

**Author:** ![empet](https://avatars.discourse-cdn.com/v4/letter/e/977dab/32.png) [@empet](https://community.plotly.com/u/empet)\
**Post date:** [August 24, 2019, 6:27pm UTC](https://community.plotly.com/t/change-marker-colors-based-on-values-python/27722/2 "2019-08-24T18:27:34Z")

</div>

@rasika You got that error because you declared `mode='markers'`, but instead giving marker colors you gave a list of colors for `line`. `line` admits only one color, not a list.

If you had in mind to get something like the figure generated by this trace definition:

```auto
trace1 = go.Scatter(x=df['Date'], y=df['Show1'], 
                    mode='markers+lines', name='Show1',
                    marker = dict(size=8, color=list(map(SetColor, df['Show1']))),
                    line=dict(color='rgb(200,200,200)'
                       )) 

```

then you have to change only the marker size, and line color you want for your plot. Otherwise, please give more details on what color do you want to assign to a line, let us say, from a value \<100 to one greater than 200.
