1.配置项:
- 全局配置项:
- 可以通过set_global_opts方法设置
frompyechartsimportoptionsasopts
frompyecharts.fakerimportFaker
frompyecharts.chartsimportBar,Line
frompyecharts.globalsimportCurrentConfig,RenderType,ThemeType
CurrentConfig.ONLINE_HOST="https://cdn.jsdelivr.net/npm/echarts@latest/dist/"
c=(
Bar(
#InitOpts:初始化配置项
init_opts=opts.InitOpts(
width="700px",
height="400px",#图表画布大小,css长度单位
renderer=RenderType.CANVAS,#渲染风格,可选:canvas,svg
page_title='网页标题',
theme=ThemeType.DARK,#主题
bg_color='black'),#背景颜色
)
.add_xaxis(Faker.choose())
.add_yaxis("商家A",Faker.values())
.add_yaxis("商家B",Faker.values())
#全局配置项
.set_global_opts(
title_opts=opts.TitleOpts(title="柱形图",
subtitle="副标题",
title_link='http://www.baidu.com',#主标题点击跳转链接
title_target='self',#blank新窗口打开,self当前窗口打开
subtitle_link='http://www.baidu.com',
#标题位置
pos_left='20px',
pos_top='0px',
pos_right='0px',
pos_bottom='0px',
padding=10,#内边距
item_gap=10,#主标题和副标题之间的间隙
),
#区域缩放配置项
datazoom_opts=opts.DataZoomOpts(is_show=True,#是否显示组件
type_='slider',#组件的类型:slider,inside
is_realtime=True,#拖动时是否实时更新图表
range_start=40,#数据窗口的起始位置
range_end=80,#数据窗口的结束位置
orient='horizontal',#horizontal或veritical
is_zoom_lock=True#是否锁定选择取
),
#图例配置项
legend_opts=opts.LegendOpts(type_='plain',#plain:普通图例,scroll,可以滚动翻页的图例
is_show=True,#是否展示图例
pos_left='20%',#图例位置
pos_top=10,
pos_right=10,
pos_bottom=10,
orient='horizontal',#horizontal或vertical
#选择模式:True:开启图例点击,False:关闭图例点击,singe:单选,multiple:多选
selected_mode='multiple',
align='right',#图标和文字的对齐方式
padding=10,#内边距
item_gap=5,#图例之间的间距
item_width=30,#项的宽度
item_height=12,#项的高度
inactive_color='#ccc',#图例关闭时的颜色
legend_icon='circle'#circle,rect,roundRect,triangle,diamond,arrow图标形状
),
#VisualMapOpts:视觉映射配置项
visualmap_opts=opts.VisualMapOpts(is_show=True,
type_='color',#colorsize
min_=0,
max_=255,
range_opacity=0.7,#图片和文字的透明度
range_text=['max','min'],#两端的文本
range_color=['blue','green','yellow','red'],#过度颜色
orient='veritical',#horizontal或vertical
#pos_left='0%',#位置
pos_top=0,
pos_right='5%',
#pos_bottom=0,
is_piecewise=True,#是否分段型
is_inverse=True,#是否反转
),
tooltip_opts=opts.TooltipOpts(is_show=True,
trigger='item',#触发类型item:数据项,一般用于散点图,柱形图,饼图,
#axis:坐标轴,提示线,主要用于条形图,折线图等
trigger_on='click',#触发条件:mousemove,click,mousemove|click
is_show_content=True,#是否显示提示框浮层
formatter='{a}:{b}-{c}',#标签内容的格式:字符中的模板变量:{a}:系列名series_name{b}:数据名{c}:值
background_color='grey',
border_color='white',
border_width=1,
),
xaxis_opts=opts.AxisOpts(is_show=True,#是否显示X轴
type_='category',#坐标轴类型:value:数值轴,用于连续数据,category:类目轴,适用于离散数据,例如星期一,星期二,time:时间轴,适用于连续的时序数据
),
yaxis_opts=opts.AxisOpts(axisline_opts=opts.AxisLineOpts(is_show=True),#显示y轴线
axistick_opts=opts.AxisTickOpts(is_show=False)#不显示y轴刻度刻度
),
)
.render("bar_base.html")
)
- 系列配置项:
- 系列配置项可以通过set_series_opts方法设置
frompyecharts.chartsimportLine
frompyechartsimportoptionsasopts
frompyecharts.fakerimportFaker
frompyecharts.chartsimportBar,Line
frompyecharts.globalsimportCurrentConfig,RenderType,ThemeType
CurrentConfig.ONLINE_HOST="https://cdn.jsdelivr.net/npm/echarts@latest/dist/"
c=(
Line(
#InitOpts:初始化配置项
init_opts=opts.InitOpts(
width="700px",
height="400px",#图表画布大小,css长度单位
)
)
.add_xaxis(Faker.choose())
.add_yaxis("商家A",Faker.values())
.add_yaxis("商家B",Faker.values())
#全局配置项
.set_global_opts(
title_opts=opts.TitleOpts(title='折线图'),
tooltip_opts=opts.TooltipOpts(trigger='axis')#提示线
)
#系列配置项
.set_series_opts(
itemstyle_opts=opts.ItemStyleOpts(#图元样式配置项
#图的颜色:纯色:RGB,rgb(120,120,120),RGBA,rgba(120,120,120,0.5),十六进制#ccc
color='blue',
opacity=0.6,#透明度
border_color='green',
border_width=2,
),
linestyle_opts=opts.LineStyleOpts(
is_show=True,
width=2,
color='green',#线颜色
type_='dashed',#solid,dashed,dotted
),
#标签配置项
label_opts=opts.LabelOpts(
is_show=True,
position='bottom',#top,left,right,bottom,inside,insideLeft,insideRight,insideTop,insideBottom
color='red',
font_size=14,
font_family='Arial',
font_style='normal',#是否斜体,italic
font_weight='bold',#是否加粗
rotate=-30,#旋转度数
),
#标记点配置项
markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(type_='max',symbol='pin',symbol_size=50,),#min,max,average
opts.MarkPointItem(type_='min',symbol='pin',symbol_size=50,)
]
),
#标记线
markline_opts=opts.MarkLineOpts(
data=[
opts.MarkLineItem(type_='average')
],
label_opts=opts.LabelOpts(
color='red',
)
)
)
.render("line_base.html")
)
- Facker:
- Facker.choose()随机产生同属性的七个名词
- Facker.values()随机产生七个数
- Facker.cars()随机产生七个车名称
- Facker.country() #随机产生七个国家
- Facker.visual_color()#随机产生七个颜色
- Facker.days_attrs() 天数
- Facker.days_values()# 日的值
- Facker.clock #时钟列表
- Facker.animal()
- Facker.dogs()
- Facker.clothes()
- Facker.guangdong_city()
- Facker.week()
- Facker..week_en()
- 饼图:
frompyecharts.chartsimportLine
frompyechartsimportoptionsasopts
frompyecharts.fakerimportFaker
frompyecharts.chartsimportBar,Line,Pie
frompyecharts.globalsimportCurrentConfig,RenderType,ThemeType
CurrentConfig.ONLINE_HOST="https://cdn.jsdelivr.net/npm/echarts@latest/dist/"
list(zip(Faker.choose(),Faker.values()))
c=(Pie()
.add('',[list(x)forxinzip(Faker.choose(),Faker.values())])
.set_colors(['red','yellow','green','blue','magenta','cyan','black'])
.set_global_opts(
title_opts=opts.TitleOpts(title='设置颜色',pos_left="40%"),
legend_opts=opts.LegendOpts(type_='scroll',pos_left="80%",orient='vertical',),
)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}")
)
)
c.render("line_base.html")
- 玫瑰图:
frompyecharts.chartsimportLine
frompyechartsimportoptionsasopts
frompyecharts.fakerimportFaker
frompyecharts.chartsimportBar,Line,Pie
frompyecharts.globalsimportCurrentConfig,RenderType,ThemeType
CurrentConfig.ONLINE_HOST="https://cdn.jsdelivr.net/npm/echarts@latest/dist/"
list(zip(Faker.choose(),Faker.values()))
v=Faker.choose()
c=(
Pie()
.add('',[list(i)foriinzip(v,Faker.values())],
radius=['30%','75%'],#设置饼图的内圈半径和外圈半径
center=['25%','50%'],#设置饼图在容器中的位置
rosetype='radis',
label_opts=opts.LabelOpts(is_show=False),#不显示标签
)
.add('',[list(i)foriinzip(v,Faker.values())],
radius=['30%','75%'],#设置饼图的内圈半径和外圈半径
center=['75%','50%'],#设置饼图在容器中的位置
rosetype='area',
label_opts=opts.LabelOpts(is_show=True),#不显示标签
)
.set_global_opts(title_opts=opts.TitleOpts(title='玫瑰图'))
)
c.render("line_base.html")
- 柱形图:
frompyecharts.chartsimportLine
frompyechartsimportoptionsasopts
frompyecharts.fakerimportFaker
frompyecharts.chartsimportBar,Line,Pie
frompyecharts.globalsimportCurrentConfig,RenderType,ThemeType
frompyecharts.commons.utilsimportJsCode
CurrentConfig.ONLINE_HOST="https://cdn.jsdelivr.net/npm/echarts@latest/dist/"
list(zip(Faker.choose(),Faker.values()))
c=(
Bar(
init_opts=opts.InitOpts(
animation_opts=opts.AnimationOpts(
animation_delay=1000,#动画延时1m
animation_easing='elasticOut'#弹性动画
),
bg_color={
'image':JsCode('img'),
'repeat':'no-repeat',
}
)
)
.add_xaxis(Faker.choose())
.add_yaxis('商家A',Faker.values())
.add_yaxis('商家B',Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(
title='柱形图',
subtitle='副标题',
title_textstyle_opts=opts.TextStyleOpts(
color='white'
),
subtitle_textstyle_opts=opts.TextStyleOpts(
color='blue'
)
)
)
)
c.add_js_funcs(
#添加js代码
"""
varimg=newImage();
img.src='https://gimg2.baidu.com/image_search/src=http://image109.360doc.com/DownloadImg/2021/04/0713/219519055_1_20210407012803425&refer=http://image109.360doc.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1724385822&t=e3492f59bfb2c90695ef7bd4520bf09f'
"""
)
c.render("line_base.html")
- 使用JS:
- 堆柱状图:
frompyecharts.chartsimportLine
frompyechartsimportoptionsasopts
frompyecharts.fakerimportFaker
frompyecharts.chartsimportBar,Line,Pie
frompyecharts.globalsimportCurrentConfig,RenderType,ThemeType
frompyecharts.commons.utilsimportJsCode
CurrentConfig.ONLINE_HOST="https://cdn.jsdelivr.net/npm/echarts@latest/dist/"
list(zip(Faker.choose(),Faker.values()))
c=(
Bar()
.add_xaxis(Faker.choose())
.add_yaxis('商家A',Faker.values(),stack='abc')
.add_yaxis('商家B',Faker.values(),stack='abc')
.set_global_opts(
title_opts=opts.TitleOpts(
title='柱形图',
subtitle='副标题',
),
xaxis_opts=opts.AxisOpts(
axislabel_opts=opts.LabelOpts(rotate=45),#旋转x轴数据
),
datazoom_opts=[
opts.DataZoomOpts(),
opts.DataZoomOpts(type_='inside',)#鼠标滚轮缩放
]
)
.set_series_opts(
label_opts=opts.LabelOpts(is_show=False)
)
)
c.render("line_base.html")
- 条形图:
frompyecharts.chartsimportLine
frompyechartsimportoptionsasopts
frompyecharts.fakerimportFaker
frompyecharts.chartsimportBar,Line,Pie
frompyecharts.globalsimportCurrentConfig,RenderType,ThemeType
frompyecharts.commons.utilsimportJsCode
CurrentConfig.ONLINE_HOST="https://cdn.jsdelivr.net/npm/echarts@latest/dist/"
list(zip(Faker.choose(),Faker.values()))
c=(
Bar()
.add_xaxis(Faker.choose())
.add_yaxis('商家A',Faker.values())
.add_yaxis('商家B',Faker.values())
.reversal_axis()
.set_global_opts(
title_opts=opts.TitleOpts(
title='条形图',
),
)
.set_series_opts(
label_opts=opts.LabelOpts(is_show=True,position='right')
)
)
c.render("line_base.html")
- 控制柱间的距离:
- 直方图:
frompyecharts.chartsimportLine
frompyechartsimportoptionsasopts
frompyecharts.fakerimportFaker
frompyecharts.chartsimportBar,Line,Pie
frompyecharts.globalsimportCurrentConfig,RenderType,ThemeType
frompyecharts.commons.utilsimportJsCode
CurrentConfig.ONLINE_HOST="https://cdn.jsdelivr.net/npm/echarts@latest/dist/"
list(zip(Faker.choose(),Faker.values()))
c=(
Bar()
.add_xaxis(Faker.choose())
.add_yaxis('商家A',Faker.values(),category_gap='0%')#单个系列柱间距
.set_global_opts(
title_opts=opts.TitleOpts(title='直方图',),
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
)
c.render("line_base.html")
- JsCode自定义柱颜色:
frompyecharts.chartsimportLine
frompyechartsimportoptionsasopts
frompyecharts.fakerimportFaker
frompyecharts.chartsimportBar,Line,Pie
frompyecharts.globalsimportCurrentConfig,RenderType,ThemeType
frompyecharts.commons.utilsimportJsCode
CurrentConfig.ONLINE_HOST="https://cdn.jsdelivr.net/npm/echarts@latest/dist/"
list(zip(Faker.choose(),Faker.values()))
color_func="""
function(params){
if(params.value>0&¶ms.value<80){
return'red'}
elseif(params.value>80&¶ms.value<200){
return'green'}
}
"""
c=(
Bar()
.add_xaxis(Faker.choose())
.add_yaxis('商家A',
Faker.values(),
category_gap='0%',
itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_func))
)#单个系列柱间距
.set_global_opts(
title_opts=opts.TitleOpts(title='直方图',),
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
)
c.render("line_base.html")
- 并行多图:
frompyecharts.chartsimportLine,Scatter,Grid
frompyechartsimportoptionsasopts
frompyecharts.fakerimportFaker
frompyecharts.chartsimportBar,Line,Pie
frompyecharts.globalsimportCurrentConfig,RenderType,ThemeType
frompyecharts.commons.utilsimportJsCode
CurrentConfig.ONLINE_HOST="https://cdn.jsdelivr.net/npm/echarts@latest/dist/"
c=(
Line()
.add_xaxis(Faker.choose())
.add_yaxis('A',Faker.values())
.add_yaxis('B',Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title='折线图',),
legend_opts=opts.LegendOpts(pos_left='10%'),
)
)
scatter=(
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis('C',Faker.values())
.add_yaxis('D',Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title='散点图',pos_right='10%'),
legend_opts=opts.LegendOpts(pos_right='20%'),
)
)
grid=(
Grid()
.add(c,grid_opts=opts.GridOpts(pos_right='55%'))
.add(scatter,grid_opts=opts.GridOpts(pos_left='55%'))
)
grid.render("line_base.html")
- 雷达图:
frompyecharts.chartsimportLine,Scatter,Grid,Radar
frompyechartsimportoptionsasopts
frompyecharts.fakerimportFaker
frompyecharts.chartsimportBar,Line,Pie
frompyecharts.globalsimportCurrentConfig,RenderType,ThemeType
frompyecharts.commons.utilsimportJsCode
CurrentConfig.ONLINE_HOST="https://cdn.jsdelivr.net/npm/echarts@latest/dist/"
v1=[[4300,3400,5300,4900,6200,4500]]
v2=[[6500,4300,5200,3600,6200,2900]]
c=(
Radar()
.add_schema(
schema=[opts.RadarIndicatorItem(
name='项目1',
max_=7000
),
opts.RadarIndicatorItem(
name='项目2',
max_=7000
),
opts.RadarIndicatorItem(
name='项目3',
max_=9000
),
opts.RadarIndicatorItem(
name='项目4',
max_=17000
),opts.RadarIndicatorItem(
name='项目5',
max_=20000
),
opts.RadarIndicatorItem(
name='项目6',
max_=30000
)
]
)
.add('数据1',v1)
.add('数据2',v2,color='blue')
)
c.render("line_base.html")
- 折线图:
d=(
Line(
init_opts=opts.InitOpts(width='1000px',height='500px')
)
.add_xaxis(xaxis_data=Faker.week)
.add_yaxis(series_name='',
y_axis=[120,200,150,80,70,110,130],
symbol='triangle',#点符号类型
symbol_size=20,
#线属性
linestyle_opts=opts.LineStyleOpts(
color='green',
width=2,
type_="dashed"
),
#标签属性
label_opts=opts.LabelOpts(is_show=False),
#点的属性
itemstyle_opts=opts.ItemStyleOpts(
border_width=2,
border_color='blue',
color='red'
),
#标注点
markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(type_='max',),#最大值
opts.MarkPointItem(type_='min')
]
),
#标注线
markline_opts=opts.MarkLineOpts(
data=[
opts.MarkLineItem(
type_='average',
),
],
),
)
)
- 面积图:
v1=["周一","周二","周三","周四","周五","周六","周日"]
v2=[650,430,520,360,620,290]
c=(
Line()
.add_xaxis(xaxis_data=v1)
.add_yaxis('',
y_axis=[650,430,520,360,620,290,500],
areastyle_opts=opts.AreaStyleOpts(opacity=0.5)#面积图
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="面积图",
),
tooltip_opts=opts.TooltipOpts(trigger='axis'),
xaxis_opts=opts.AxisOpts(type_='category',boundary_gap=False)
)
)
- 堆叠面积图:
v1=["周一","周二","周三","周四","周五","周六","周日"]
v2=[650,430,520,360,620,290]
c=(
Line()
.add_xaxis(xaxis_data=v1)
.add_yaxis('广告',
y_axis=[650,430,520,360,620,290,500],
areastyle_opts=opts.AreaStyleOpts(opacity=0.5),#面积图
stack='堆叠'
)
.add_yaxis('价格',
y_axis=[450,330,220,660,320,690,200],
areastyle_opts=opts.AreaStyleOpts(opacity=0.5),#面积图
stack='堆叠'
)
.add_yaxis('商品',
y_axis=[4330,3300,2200,6600,3020,6090,2000],
areastyle_opts=opts.AreaStyleOpts(opacity=0.5),#面积图
stack='堆叠'
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="面积图",
),
tooltip_opts=opts.TooltipOpts(trigger='axis'),
xaxis_opts=opts.AxisOpts(type_='category',boundary_gap=False)
)
)
- 散点图:
c=(
Scatter()
.add_xaxis(Faker.values())
.add_yaxis('C',Faker.values(),
symbol='square',
label_opts=opts.LabelOpts(is_show=True))
.set_global_opts(
xaxis_opts=opts.AxisOpts(
type_='value',
splitline_opts=opts.SplitLineOpts(
is_show=True
)
),
yaxis_opts=opts.AxisOpts(
type_='value',
splitline_opts=opts.SplitLineOpts(
is_show=True
)
)
)
)
- 涟漪散点图
c=(
EffectScatter()
.add_xaxis(Faker.choose())
.add_yaxis(
'',
Faker.values(),
symbol=SymbolType.ARROW
)
.set_global_opts(
title_opts=opts.TitleOpts(
title='涟漪散点图',
),
xaxis_opts=opts.AxisOpts(
splitline_opts=opts.SplitLineOpts(is_show=True)
),
yaxis_opts=opts.AxisOpts(
splitline_opts=opts.SplitLineOpts(is_show=True)
)
)
)
- 热力图:
value=[[i,j,random.randint(0,50)]foriinrange(24)forjinrange(7)]
c=(
HeatMap()
.add_xaxis(Faker.clock)
.add_yaxis('热力图',
Faker.week,
value,
label_opts=opts.LabelOpts(is_show=True,position='inside')
)
)
- 日历图:
begin=datetime.date(2023,1,1)
end=datetime.date(2023,12,31)
data=[[str(begin+datetime.timedelta(days=i)),random.randint(1000,25000)]
foriinrange((end-begin).days+1)]
c=(
Calendar()
.add(
'',
data,
calendar_opts=opts.CalendarOpts(
range_='2023',
daylabel_opts=opts.CalendarDayLabelOpts(name_map='cn'),
monthlabel_opts=opts.CalendarMonthLabelOpts(name_map='cn'),
)
)
.set_global_opts(title_opts=opts.TitleOpts(title='2023日历图'),
visualmap_opts=opts.VisualMapOpts(max_=25000,
min_=1000,
orient='horizontal',
is_piecewise=True,
pos_left='100px',
pos_top='230px')
)
)
- 箱型图:
v1=[[850,450,250,150,250,350,670,360,570,320,357],
[150,450,550,250,650,250,770,220,320,560,337]]
c=(
Boxplot()
.add_xaxis(['demo1','demo2'])
)
c.add_yaxis('A',c.prepare_data(v1))
- 词云图:
v1=[("兔子",100),("猫",88),("狗",45),("仓鼠",66),("狐狸",34),("狐2狸",14),("狐4狸",74),("狐1狸",64),("狐4狸",35)]
c=(
WordCloud()
.add(
'分析',
data_pair=v1,
word_size_range=[6,50],
textstyle_opts=opts.TextStyleOpts(
font_family='cursive'
)
)
)
- 漏斗图
c=(
Funnel()
.add('商品',
[list(i)foriinzip(Faker.choose(),Faker.values())]
)
.set_global_opts(title_opts=opts.TitleOpts(title='漏斗图'))
)
x_data=['A','B','C','D','E']
y_data=[100,80,30,60,70]
data=[[x_data[i],y_data[i]]foriinrange(len(x_data))]
c=(
Funnel(init_opts=opts.InitOpts(width='600px',height='400px'))
.add('商品',
data_pair=data,
gap=2,#间隙
tooltip_opts=opts.TooltipOpts(
trigger='item',
formatter='{a}<br/>{b}:{c}'
),
label_opts=opts.LabelOpts(
is_show=True,
position='inside'
)
)
.set_global_opts(title_opts=opts.TitleOpts(title='漏斗图'))
)
- 极坐标图:
data=[(i,random.randint(1,100))for i in range(101)]
c=(
Polar()
.add(
'极坐标',
data,
type_='scatter',
label_opts=opts.LabelOpts(
is_show=False
)
)
)
c=(
Polar()
.add_schema(
radiusaxis_opts=opts.RadiusAxisOpts(
data=Faker.week,
type_='category'
),
angleaxis_opts=opts.AngleAxisOpts(
is_clockwise=True,
max_=10
)
)
.add('商品',[1,2,3,4,5,3,2],type_='bar')
)
c=(
Polar()
.add_schema(
angleaxis_opts=opts.AngleAxisOpts(
data=Faker.week,
type_='category'
),
)
.add('商品1',[1,2,3,4,5,3,2],type_='bar')
.add('商品2',[2,3,1,4,6,3,2],type_='bar')
.add('商品3',[4,3,6,7,4,2,4],type_='bar')
.add('商品4',[3,5,3,1,4,3,2],type_='bar')
)
importrandom,datetime
data=[(i,random.randint(1,100))foriinrange(101)]
c=(
Polar()
.add_schema(
radiusaxis_opts=opts.RadiusAxisOpts(
data=Faker.week,
type_='category'
),
)
.add('商品1',[1,2,3,4,5,3,2],type_='bar')
.add('商品2',[2,3,1,4,6,3,2],type_='bar')
.add('商品3',[4,3,6,7,4,2,4],type_='bar')
.add('商品4',[3,5,3,1,4,3,2],type_='bar')
)
data=[(i,random.randint(1,100))foriinrange(20)]
c=(
Polar()
.add(
'极坐标',
data,
type_='effectScatter',
label_opts=opts.LabelOpts(
is_show=False
),
effect_opts=opts.EffectOpts(
scale=10,#涟漪范围大小
period=5#涟漪速度
)
)
)
- 水球图:
c=(
Liquid()
.add(
'',
[0.6,0.3],
is_outline_show=False,#外边框是否显示
shape=SymbolType.DIAMOND#形状
)
)
- 桑基图:
nodes=[
{'name':'c1'},
{'name':'c2'},
{'name':'c3'},
{'name':'c4'},
{'name':'c5'},
{'name':'c6'},
{'name':'c7'},
{'name':'c8'},
]
links=[
{'source':'c1','target':'c2','value':10},
{'source':'c2','target':'c3','value':20},
{'source':'c3','target':'c4','value':30},
{'source':'c4','target':'c5','value':40},
#{'source':'c5','target':'c6','value':50},
{'source':'c6','target':'c7','value':60},
{'source':'c7','target':'c8','value':70},
]
c=(
Sankey()
.add(
'',
nodes,
links,linestyle_opt=opts.LineStyleOpts(
opacity=0.2,#透明度
curve=0.6,#曲线幅度
color='red'
)
)
)
- 旭日图:
data=[{"name":"烟","itemStyle":{"color":"#da0d68"},
"children":[{"name":"黄鹤楼","value":10,"itemStyle":{"color":"#975e6d"},
'children':[{"name":"硬","value":2,"itemStyle":{"color":"#d78823"}},
{"name":"软","value":3,"itemStyle":{"color":"#da5c1f"}},
{"name":"1919","value":5,"itemStyle":{"color":"#f89a80"}}]},
{"name":"南京","value":12,"itemStyle":{"color":"#e0719c"}},
{"name":"白鲨","value":15,"itemStyle":{"color":"#dd4c51"}},
{"name":"泰山","value":17,"itemStyle":{"color":"#c94a44"}}]},
{"name":"酒","itemStyle":{"color":"#c94a44"},
"children":[{"name":"茅台","value":7,"itemStyle":{"color":"#e65656"}},
{"name":"五粮液","value":9,"itemStyle":{"color":"#4eb849"}},
{"name":"酒鬼酒","value":21,"itemStyle":{"color":"#f68a5c"}},
{"name":"白云边","value":13,"itemStyle":{"color":"#baa635"}}]},
{"name":"茶","itemStyle":{"color":"##ebb40f"},
"children":[{"name":"大红袍","value":3,"itemStyle":{"color":"#e2631e"}},
{"name":"碧螺春","value":6,"itemStyle":{"color":"#fde404"}},
{"name":"毛尖","value":12,"itemStyle":{"color":"#7eb138"}},
{"name":"白茶","value":15,"itemStyle":{"color":"#d0b24f"}}]}
]
c=(Sunburst(init_opts=opts.InitOpts(width="1000px",height="600px"))
.add(
"",
data_pair=data,
highlight_policy="ancestor",
radius=[0,"95%"],
sort_="null",
levels=[
{},
{
"r0":"15%",
"r":"35%",
"itemStyle":{"borderWidth":2},
"label":{"rotate":"tangential"},
},
{"r0":"35%","r":"70%","label":{"align":"right"}},
{
"r0":"70%",
"r":"72%",
"label":{"position":"outside","padding":3,"silent":False},
"itemStyle":{"borderWidth":3},
},
],
)
.set_global_opts(title_opts=opts.TitleOpts(title="旭日图"),)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}"))
)
- 仪表盘
c=(
Gauge()
.add("销售额",
[('',60)],
radius='60%'
)
)
- 树图:
data=[
{
"children":[
{"name":"B"},
{
"children":[{"children":[{"name":"I"}],"name":"E"},{"name":"F"}],
"name":"C",
},
{
"children":[
{"children":[{"name":"J"},{"name":"K"}],"name":"G"},
{"name":"H"},
],
"name":"D",
},
],
"name":"A",
}
]
c=(
Tree()
.add("",
data,)
.set_global_opts(title_opts=opts.TitleOpts(title='树图'))
)
- 矩形树图
data=[
{'value':40,'name':'伯伯'},
{
'value':180,
'name':'父亲',
'children':[
{'value':12,'name':'大儿子'},
{'value':23,'name':'二儿子'},
{'value':24,'name':'三儿子'},
{'value':34,'name':'四儿子'},
]
}
]
c=(
TreeMap()
.add('',data)
)
- 关系图1:
data=[
{'name':'node1','symbolSize':10},
{'name':'node2','symbolSize':20},
{'name':'node3','symbolSize':30},
{'name':'node4','symbolSize':40},
{'name':'node5','symbolSize':50},
{'name':'node6','symbolSize':30},
{'name':'node7','symbolSize':40},
{'name':'node8','symbolSize':20},
]
links=[]
foriindata:
forjindata:
links.append({'source':i.get('name'),'target':j.get('name')})
c=(
Graph()
.add('',data,links,repulsion=8000#排斥力,越大分的越开
)
)
- 关系图2:
nodes_data=[
opts.GraphNode(name='node1',symbol_size=10),
opts.GraphNode(name='node2',symbol_size=20),
opts.GraphNode(name='node3',symbol_size=30),
opts.GraphNode(name='node4',symbol_size=40),
opts.GraphNode(name='node5',symbol_size=50),
opts.GraphNode(name='node6',symbol_size=60),
]
links_data=[
opts.GraphLink(source='node1',target='node2',value=2),
opts.GraphLink(source='node2',target='node3',value=3),
opts.GraphLink(source='node3',target='node4',value=4),
opts.GraphLink(source='node4',target='node5',value=5),
opts.GraphLink(source='node5',target='node6',value=6),
opts.GraphLink(source='node6',target='node1',value=7),
]
c=(
Graph()
.add('',
nodes_data,
links_data,
repulsion=5000,#排斥力,越大分的越开
edge_label=opts.LabelOpts(
is_show=True,
position='middle'
)
)
)
- 关系图3:
c=(
Graph()
.add('',
nodes=nodes,
links=links,
categories=categories,
layout='circular',#布局方式圆
is_rotate_label=True,
linestyle_opts=opts.LineStyleOpts(color='source',#使用节点颜色
curve=0.3#曲度
)
)
)
- K线图
data=[
[2320.26,2320.26,2287.3,2362.94],
[2300,2291.3,2288.26,2308.38],
[2295.35,2346.5,2295.35,2345.92],
[2347.22,2358.98,2337.35,2363.8],
[2360.75,2382.48,2347.89,2383.76],
[2383.43,2385.42,2371.23,2391.82],
[2377.41,2419.02,2369.57,2421.15],
[2425.92,2428.15,2417.58,2440.38],
[2411,2433.13,2403.3,2437.42],
[2432.68,2334.48,2427.7,2441.73],
[2430.69,2418.53,2394.22,2433.89],
[2416.62,2432.4,2414.4,2443.03],
[2441.91,2421.56,2418.43,2444.8],
[2420.26,2382.91,2373.53,2427.07],
[2383.49,2397.18,2370.61,2397.94],
[2378.82,2325.95,2309.17,2378.82],
[2322.94,2314.16,2308.76,2330.88],
[2320.62,2325.82,2315.01,2338.78],
[2313.74,2293.34,2289.89,2340.71],
[2297.77,2313.22,2292.03,2324.63],
[2322.32,2365.59,2308.92,2366.16],
[2364.54,2359.51,2330.86,2369.65],
[2332.08,2273.4,2259.25,2333.54],
[2274.81,2326.31,2270.1,2328.14],
[2333.61,2347.18,2321.6,2351.44],
[2340.44,2324.29,2304.27,2352.02],
[2326.42,2318.61,2314.59,2333.67],
[2314.68,2310.59,2296.58,2320.96],
[2309.16,2286.6,2264.83,2333.29],
[2282.17,2263.97,2253.25,2286.33],
[2255.77,2270.28,2253.31,2276.22],
]
c=(
Kline()
.add_xaxis(['2017/1/{}'.format(i+1)foriinrange(31)])
.add_yaxis('K线图',data)
)
- 地图:
c=(
Map()
.add(
'',
[list(i)foriinzip(Faker.guangdong_city,Faker.values())],
'广东'
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
max_=200,
is_piecewise=True,
)
)
)
- 地理坐标图:
c=(
Geo()
.add_schema(maptype='china')
.add(
'geo',
[list(i)foriinzip(Faker.provinces,Faker.values())],
type_=ChartType.EFFECT_SCATTER
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=True))
)
c=(
Geo()
.add_schema(maptype='china')
.add(
'geo',
[('广州',50),('重庆',80),('北京',60),('杭州',70)],
type_=ChartType.EFFECT_SCATTER
)
.add(
'',
[('广州','上海'),('广州','北京'),('广州','杭州'),('广州','重庆')],
type_=ChartType.LINES,
effect_opts=opts.EffectOpts(
symbol=SymbolType.ARROW,
symbol_size=6,
color='blue'
),
linestyle_opts=opts.LineStyleOpts(curve=0.2)
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
)
- 3D折线图:
hours=[
"12a",
"1a",
"2a",
"3a",
"4a",
"5a",
"6a",
"7a",
"8a",
"9a",
"10a",
"11a",
"12p",
"1p",
"2p",
"3p",
"4p",
"5p",
"6p",
"7p",
"8p",
"9p",
"10p",
"11p",
]
days=["Saturday","Friday","Thursday","Wednesday","Tuesday","Monday","Sunday"]
data=[
[0,0,5],
[0,1,1],
[0,2,0],
[0,3,0],
[0,4,0],
[0,5,0],
[0,6,0],
[0,7,0],
[0,8,0],
[0,9,0],
[0,10,0],
[0,11,2],
[0,12,4],
[0,13,1],
[0,14,1],
[0,15,3],
[0,16,4],
[0,17,6],
[0,18,4],
[0,19,4],
[0,20,3],
[0,21,3],
[0,22,2],
[0,23,5],
[1,0,7],
[1,1,0],
[1,2,0],
[1,3,0],
[1,4,0],
[1,5,0],
[1,6,0],
[1,7,0],
[1,8,0],
[1,9,0],
[1,10,5],
[1,11,2],
[1,12,2],
[1,13,6],
[1,14,9],
[1,15,11],
[1,16,6],
[1,17,7],
[1,18,8],
[1,19,12],
[1,20,5],
[1,21,5],
[1,22,7],
[1,23,2],
[2,0,1],
[2,1,1],
[2,2,0],
[2,3,0],
[2,4,0],
[2,5,0],
[2,6,0],
[2,7,0],
[2,8,0],
[2,9,0],
[2,10,3],
[2,11,2],
[2,12,1],
[2,13,9],
[2,14,8],
[2,15,10],
[2,16,6],
[2,17,5],
[2,18,5],
[2,19,5],
[2,20,7],
[2,21,4],
[2,22,2],
[2,23,4],
[3,0,7],
[3,1,3],
[3,2,0],
[3,3,0],
[3,4,0],
[3,5,0],
[3,6,0],
[3,7,0],
[3,8,1],
[3,9,0],
[3,10,5],
[3,11,4],
[3,12,7],
[3,13,14],
[3,14,13],
[3,15,12],
[3,16,9],
[3,17,5],
[3,18,5],
[3,19,10],
[3,20,6],
[3,21,4],
[3,22,4],
[3,23,1],
[4,0,1],
[4,1,3],
[4,2,0],
[4,3,0],
[4,4,0],
[4,5,1],
[4,6,0],
[4,7,0],
[4,8,0],
[4,9,2],
[4,10,4],
[4,11,4],
[4,12,2],
[4,13,4],
[4,14,4],
[4,15,14],
[4,16,12],
[4,17,1],
[4,18,8],
[4,19,5],
[4,20,3],
[4,21,7],
[4,22,3],
[4,23,0],
[5,0,2],
[5,1,1],
[5,2,0],
[5,3,3],
[5,4,0],
[5,5,0],
[5,6,0],
[5,7,0],
[5,8,2],
[5,9,0],
[5,10,4],
[5,11,1],
[5,12,5],
[5,13,10],
[5,14,5],
[5,15,7],
[5,16,11],
[5,17,6],
[5,18,0],
[5,19,5],
[5,20,3],
[5,21,4],
[5,22,2],
[5,23,0],
[6,0,1],
[6,1,0],
[6,2,0],
[6,3,0],
[6,4,0],
[6,5,0],
[6,6,0],
[6,7,0],
[6,8,0],
[6,9,0],
[6,10,1],
[6,11,0],
[6,12,2],
[6,13,1],
[6,14,3],
[6,15,4],
[6,16,0],
[6,17,0],
[6,18,0],
[6,19,0],
[6,20,1],
[6,21,2],
[6,22,2],
[6,23,6],
]
data=[[d[1],d[0],d[2]]fordindata]
c=(
Line3D()
.add(
'',
data,
xaxis3d_opts=opts.Axis3DOpts(type_="category",data=hours),
yaxis3d_opts=opts.Axis3DOpts(type_="category",data=days),
zaxis3d_opts=opts.Axis3DOpts(type_="value"),
grid3d_opts=opts.Grid3DOpts(
width=100,
depth=100,
rotate_speed=50,
is_rotate=True,
)
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
is_show=True,
max_=30,
min_=0,
),
)
)
- 3D柱状图
data=[(i,j,random.randint(0,12))foriinrange(6)forjinrange(24)]
c=(
Bar3D()
.add(
'',
[[d[1],d[0],d[2]]fordindata],
xaxis3d_opts=opts.Axis3DOpts(Faker.clock,type_='category'),
yaxis3d_opts=opts.Axis3DOpts(Faker.week,type_='category'),
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
is_show=True,
max_=15,
min_=0,
)
)
)
- 时间轮播图