学习画平行坐标系图
记录学习
数据源的模样:
处理数据:
from pyecharts import options as opts
from pyecharts.charts import Parallel
import pandas as pd
#读数据
result=pd.read_csv('D:/iris.csv')
#分组,按照花的类型分组
A=result[result['iris']=='Iris-setosa']
B=result[result['iris']=='Iris-versicolor']
C=result[result['iris']=='Iris-virginica']
#Iris-setosa的数据
data1=[]
for a in range(0,len(A)): # 计算列表A的长度,进行循环切片
data1.append(A.values.tolist()[a][0:])
#Iris-versicolor的数据
data2=[]
for b in range(0,len(B)):
data2.append(B.values.tolist()[b][0:])
#Iris-virginica的数据
data3=[]
for c in range(0,len(C)):
data3.append(C.values.tolist()[c][0:])
#输出数据看数据的形式是否正确
print(data1,'\n',data2,'\n',data3)
输出的数据样式:
画图:
c = ( Parallel()
.add_schema(
[
opts.ParallelAxisOpts(dim=0, name="sepal length",is_scale=True),
opts.ParallelAxisOpts(dim=1, name="sepal width",is_scale=True),
opts.ParallelAxisOpts(dim=2, name="petal length",is_scale=True),
opts.ParallelAxisOpts(dim=3, name="petal width",is_scale=True),#自动划分范围is_scale=True
opts.ParallelAxisOpts(dim=4, name="分类", type_="category",
data=["Iris-setosa", "Iris-versicolor", "Iris-virginica"]),
])
.add("setosa", data1)
.add("versicolor", data2)
.add("virginica", data3)
.set_global_opts(title_opts=opts.TitleOpts(
title="Parallel cordlnate plot, Fisher's iris data",pos_top="top",pos_right="center"),
legend_opts=opts.LegendOpts( pos_top="bottom",pos_right="center"),)
.render("parallel.html")
)
结果图:
参照学习代码
def add(
# 系列名称,用于 tooltip 的显示,legend 的图例筛选。
series_name: str,
# 系列数据
data: types.Sequence[types.Union[opts.ParallelItem, dict]],
# 是否选中图例。
is_selected: bool = True,
# 是否平滑曲线
is_smooth: bool = False,
# 线条样式,参考 `series_options.LineStyleOpts`
linestyle_opts: Union[opts.LineStyleOpts, dict] = opts.LineStyleOpts(),
# 提示框组件配置项,参考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
# 图元样式配置项,参考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
)
如果你希望画的图更好可参照以下的链接: https://url.cn/5xgEnEg.