首页 前端知识 PyEcharts知识点详解(每张图都有!)(巨详细!!)

PyEcharts知识点详解(每张图都有!)(巨详细!!)

2024-08-24 23:08:00 前端知识 前端哥 887 225 我要收藏

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',#组件的类型:sliderinside

is_realtime=True,#拖动时是否实时更新图表

range_start=40,#数据窗口的起始位置

range_end=80,#数据窗口的结束位置

orient='horizontal',#horizontalveritical

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',#horizontalvertical

#选择模式: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,rectroundRecttrianglediamondarrow图标形状

),

#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',#horizontalvertical

#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',#触发条件:mousemoveclickmousemove|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(#图元样式配置项

#图的颜色:纯色:RGBrgb120120120),RGBArgba1201201200.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,),#minmaxaverage

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&&params.value<80){

return'red'}

elseif(params.value>80&&params.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,

)

)

)

  • 时间轮播图
转载请注明出处或者链接地址:https://www.qianduange.cn//article/16818.html
评论
发布的文章

安装Nodejs后,npm无法使用

2024-11-30 11:11:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!