pyecharts库是python下实现的echarts图表绘制库,接下来,我们使用pyecharts来绘制一条曲线,来体验一下pyecharts的基本使用效果。
1、首先,我们要安装下pyecharts库,在pycharm终端输入安装命令:
pip install pyecharts
2、然后在程序中引入相关的库。
from pyecharts.charts import Line
from pyecharts.options import VisualMapOpts,LabelOpts
from pyecharts import options as opts
3、生成我们要拟合的曲线数据
num = range(1,11)
D = 10
data_list1 = []#设置两个列表接收x,y的值
data_list2 = []
for i in num:
x = i/10
y = 1/(D*(1-x)+x)#需要拟合曲线的表达式# print(f"{x},{y}")
data_list1.append(x)
data_list2.append(y)#数组中填入需要的x,yprint(F"{data_list1}")
x_data = data_list1
y_data = data_list2
其中,我们首先定义了一个列表num,列表中你的值为【1,10】,然后定义两个列表data_list1和data_list2,分别用来存放x自变量的值和因变量y的值。
然后循环num,生成x和y的值,其中x变量为0.1-1之间的值,y为1/(D*(1-x)+x),然后将生成的值分别放入到列表data_list1和data_list2
循环完毕后再将data_list1和data_list2分别赋值给x_data和y_data
4、新建一个line对象,用于绘制曲线。然后设置曲线的x和y分别为我们上面生成好的x_data和y_data
line = Line()
line.add_xaxis(x_data)
line.add_yaxis("模拟",y_data,label_opts=LabelOpts(is_show=False), is_smooth=True)
其中label_opts=LabelOpts(is_show=False)用于设置不显示y具体的数值在图形上,is_smooth设置绘制出来的线条是平滑的,而不是折线。
5、设置全局属性。
line.set_global_opts(
visualmap_opts=VisualMapOpts(is_show=True),
xaxis_opts=opts.AxisOpts(
type_="value",
name="x",
is_show=True,
is_scale=True,
name_location='middle',
min_=0.1,
max_=1,
) )
其中,我们设置visualmap_opts属性为可见,表示绘制出来的图形是否显示视觉组件,这个组件会在图形的旁边显示,通过这个组件可以控制图形的一个显示,当数据量比较多的时候。在这里作用不大,因为数据单一。
其次,xaxis_opts参数设置x轴的一些属性,name为x轴上显示的文本,最重要的是min_和max_属性,表示x轴的数值范围,如果不设置,显示的数据会有问题。这里x轴的数据是从0.1到1。
6、最后调用render方法,执行完后会在项目目录下生成一个render.html文件:
line.render()
7、打开这个render.html文件,我们可以看到生成的html代码:
如果你做过网页开发,使用过echarts,那么这个文件中你的代码你会很熟悉。
我们鼠标点击文件内部的内容,会有浏览器图标显示出来:
根据自己电脑上已安装的浏览器,选择一个浏览器打开,这里我用第一个谷歌浏览器打开看看:
可以看到,我们拟合的曲线就绘制出来啦。
8、最后全部的代码共享给大家。
from pyecharts.charts import Line
from pyecharts.options import VisualMapOpts,LabelOpts
from pyecharts import options as opts
num = range(1,11)
D = 10
data_list1 = []#设置两个列表接收x,y的值
data_list2 = []
for i in num:
x = i/10
y = 1/(D*(1-x)+x)#需要拟合曲线的表达式# print(f"{x},{y}")
data_list1.append(x)
data_list2.append(y)#数组中填入需要的x,yprint(F"{data_list1}")
x_data = data_list1
y_data = data_list2
line = Line()
line.add_xaxis(x_data)
line.add_yaxis("模拟",y_data,label_opts=LabelOpts(is_show=False), is_smooth=True)
line.set_global_opts(
visualmap_opts=VisualMapOpts(is_show=True),
xaxis_opts=opts.AxisOpts(
type_="value",
name="x",
is_show=True,
is_scale=True,
name_location='middle',
min_=0.1,
max_=1,
) )
line.render()