from pyecharts.charts import Scatter from pyecharts.commons.utils import JsCode c = ( Scatter() #创建散点图对象 .add_xaxis(salary_data.salary_down.astype(int))#添加x周数据(薪资) .add_yaxis( "数据分析岗位数量", #y轴数据说明 [list(z) for z in zip(salary_data.job_count, salary_data.city)],#Y轴数据,岗位,城市 label_opts=opts.LabelOpts(#Js代码控制气泡显示提示文字 formatter=JsCode( "function(params){return params.value[2]}" #提示 ) ), ) .set_global_opts(#全局变量 title_opts=opts.TitleOpts(title="数据分析就业岗位数量与平均起薪"),#设置标题 tooltip_opts=opts.TooltipOpts(#Js代码控制气泡弹窗提示文字 formatter=JsCode( "function (params) {return params.value[2]+ '平均薪资:'+params.value[0]}" ) ), visualmap_opts=opts.VisualMapOpts(#控制 type_="size", max_=1500, min_=200, dimension=1 ), xaxis_opts=opts.AxisOpts(min_=6000,name='平均起薪'),#设置X轴起始值,X轴名字 yaxis_opts=opts.AxisOpts(min_=300,max_=1550,name='岗位数量'),#设置Y轴起始值,Y轴名字 ) ) c.render_notebook() 运行这段代码 并将该图 改为 散点颜色和大小均与数值相关
时间: 2024-02-14 13:15:49 浏览: 82
好的,您可以将代码改为以下形式来实现散点颜色和大小与数值相关的可视化效果:
```python
from pyecharts.charts import Scatter
from pyecharts.commons.utils import JsCode
c = (
Scatter()
.add_xaxis(salary_data.salary_down.astype(int))
.add_yaxis(
"数据分析岗位数量",
[list(z) for z in zip(salary_data.job_count, salary_data.city, salary_data.salary_down)],
# 修改为岗位数量、城市、平均起薪一起作为y轴数据,以便后续使用
label_opts=opts.LabelOpts(
formatter=JsCode(
"function(params){return params.value[2]}" # 修改为显示平均起薪
)
),
itemstyle_opts=opts.ItemStyleOpts(
color=JsCode(
"""
function(params) {
var value = params.value[2];
if (value > 10000) {
return '#7f1100';
} else if (value > 8000) {
return '#ff5428';
} else if (value > 6000) {
return '#ff8c71';
} else {
return '#ffd768';
}
}
"""
),
border_width=1,
opacity=0.7,
symbol_size=JsCode(
"""
function(params) {
var value = params.value[1];
if (value > 1000) {
return 50;
} else if (value > 500) {
return 30;
} else if (value > 200) {
return 15;
} else {
return 5;
}
}
"""
)
)
)
.set_global_opts(
title_opts=opts.TitleOpts(title="数据分析就业岗位数量与平均起薪"),
tooltip_opts=opts.TooltipOpts(
formatter=JsCode(
"""
function (params) {
return params.value[1] + ' ' + params.value[2] + '平均薪资:' + params.value[0];
}
"""
)
),
visualmap_opts=opts.VisualMapOpts(
type_="size", max_=1500, min_=200, dimension=1
),
xaxis_opts=opts.AxisOpts(min_=6000, name='平均起薪'),
yaxis_opts=opts.AxisOpts(min_=300, max_=1550, name='岗位数量')
)
)
c.render_notebook()
```
这里修改了 `.add_yaxis()` 中的 y 轴数据,将岗位数量、城市、平均起薪一起作为 y 轴数据,并在 `itemstyle_opts` 中使用了 JsCode 控制了散点的颜色和大小,具体实现过程可以看代码中的注释。
阅读全文