python - Plotly:如何根据列值设置标记大小?
问题描述
嗨,
我正在尝试使用 plotly(4.6.0 版)来创建绘图,但是标记/大小属性有问题。我在示例中使用了波士顿房价数据集。我想使用我的数据框的一列中的值来为标记设置可变大小,但是当我使用对列的直接引用(size='TAX')时出现错误。我可以将大小设置为常量(size=1)而不会出现问题。我在网上找到了一些示例,但是当我尝试使用它们时它们会产生“ValueError:...”错误。我怎样才能避免这个错误?代码和错误如下所示。
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'))
推荐阅读
- python - model.predict() == ValueError:检查输入时出错:预期 flatten_input 有 3 个维度,但得到的数组形状为 (1, 2)
- reactjs - react-bootstrap 模块没有导出成员
- python - 无法在 KAFKA 主题中推送 Json
- python - 如何使用 Python 模块而无需显式导入它们?
- ruby-on-rails - 在 Ruby 中将哈希作为参数传递
- android - 使用 getExternalStoragePublicDirectory 在较新的 android 版本上获取准确的文件路径?
- vue.js - 直接从 vue 3 设置中获得的道具不是反应式的
- nginx - 一台主机,两个子域,多个(dockered)使用 SSL 的 Web 服务
- javascript - 共享组件时 forkJoin 未定义(并组合布尔变量)
- node.js - 登录路径不起作用 - 我总是得到“错误的用户名” ----- 堆栈:NodeJS/Express/MongoDB/Mongoose/RestAPI