python - Plotly:如何根据列值设置标记大小?

标签 python size plotly valueerror markers

Hi,
I am trying to use plotly (version 4.6.0) to create plots, but having trouble with the markers/size attribute. I am using the Boston housing price dataset in my example. I want to use the value in one of the columns of my dataframe to set a variable size for the marker, but I get an error when I use a direct reference to the column (size='TAX'). I can set the size to a constant (size=1) without issues. I found some examples online, but they generate a "ValueError: ..." error when I try to use them. How can I avoid this error? Code and Error are shown below.


    import chart_studio.plotly as py
    import plotly.graph_objs as go
    from plotly.offline import iplot, init_notebook_mode
    import cufflinks
    cufflinks.go_offline(connected=True)
    init_notebook_mode(connected=True)
    import pandas as pd
    from sklearn.datasets import load_boston

    boston = load_boston()
    df = pd.DataFrame(boston.data, columns=boston.feature_names)
    y = boston.target
    df['RAD_CAT']=df['RAD'].astype(str)

    df.iplot(
        x='CRIM',
        y='INDUS',
        size='TAX',
        #size=1,
        text='RAD',
        mode='markers',
        layout=dict(
            xaxis=dict(type='log', title='CRIM'),
            yaxis=dict(title='INDUS'),
            title='CRIM vs INDUS Sized by RAD'))

    ValueError:  
        Invalid value of type 'builtins.str' received for the 'size' property of scatter.marker  
            Received value: 'TAX'  

        The 'size' property is a number and may be specified as:  
          - An int or float in the interval [0, inf]  
          - A tuple, list, or one-dimensional numpy array of the above  

最佳答案

import chart_studio.plotly as py
import plotly.graph_objs as go
from plotly.offline import iplot, init_notebook_mode
import cufflinks

cufflinks.go_offline(connected=True)
init_notebook_mode(connected=True)
import pandas as pd
from sklearn.datasets import load_boston

boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)

df.iplot(
    x='CRIM',
    y='INDUS',
    size=df['TAX']/20, 
    text='RAD',
    mode='markers',
    layout=dict(
        xaxis=dict(type='log', title='CRIM'),
        yaxis=dict(title='INDUS'),
        title='CRIM vs INDUS Sized by TAX'))

enter image description here

关于python - Plotly:如何根据列值设置标记大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61151832/

相关文章:

plotly - 标签在 y 轴上被截断

python - 将附加数据添加到 django Rest Framework View 集响应

python - 在摩尔维德投影上显示带有绘图的颜色条

python - 如何迭代嵌套字典中的一系列给定键

python - Gtk3按钮如何设置字体大小

r - 通过因子 plotly R 绘制和跟踪相同的颜色

java - Java 中是否有相当于 Python 的 printf 哈希替换的方法?

c++ - 巨大的 vector "hangs"程序? (50000 x 50000 个细胞)

android - Android模拟器中的小字体

python - Plotly:如何交替背景网格颜色?