文章目录
- 参考资料
- matplotlib库画的
- 复现一个 pyecharts的雷达图
- 尝试在上面的基础上,把pyecharts 导出存为一般的png图
- 尝试在上面的基础上,把pyecharts 导出存为一般的矢量图
- 用pygal画雷达图
参考资料
-
参考知乎
CSDN给出了一些参数
matplotbib库雷达图官网
seaborn画图汇总
5 pyecharts 雷达图 这篇写的很不错,参数解释
也详细给出来了。
matplotlib库画的
参考
复现一个 pyecharts的雷达图
复现一下5,并详细讲解一下代码吧。
2022年11月12日09:12:03。
复现过程中 特别坑的bug记录
ImportError: cannot import name 'Radar' from partially initialized module 'p
然后 在想 昨天 晚上自己 是 成功运行过的哇,还把截图发给导师了,
仔细会议 自己昨天晚上成功复现的步骤,
我记得有安装 pyecharts库这一步,然后 我把 pyecharts这个库卸载重装就可以运行了。
果然重启能解决99%的问题!!!血泪经验!!!!
遂成功复现,。
html端复现成功的完整代码——效果还不错
from pyecharts import options as opts
from pyecharts.charts import Radar
from pyecharts.commons.utils import JsCode
import pandas as pd
# 导入输出图片工具
from pyecharts.render import make_snapshot
# 使用snapshot-selenium 渲染图片
from snapshot_selenium import snapshot
data = pd.DataFrame(pd.read_excel('test.xlsx'))
# 生成绘图series
data_radar = []
for row in range(data.shape[0]):
dic = {}
value = []
for col in range(1, data.shape[1]):
value.append(int(data.iloc[row, col]))
dic['name'], dic['value'] = data['员工'][row], value
data_radar.append([dic])
# 各特征维度取值范围
scope = []
for col in range(1, data.shape[1]):
dic = {}
dic['name'] = data.columns[col]
dic['max'], dic['min'] = max(data.iloc[:, col]), 0
scope.append(dic)
c = (
# Radar()
Radar(init_opts=opts.InitOpts(bg_color={"type": "pattern", "image": JsCode("img"), "repeat": "no-repeat"}))
.add_js_funcs(""" var img = new Image();
img.src = 'bg.png'; """)
# .add_js_funcs(""" <a id="download" href="">下载</a>
# <script>
# const a = window.document.querySelector('#download')
# a.addEventListener('click',()=>{
# const content = document.querySelector('svg').outerHTML
# const blob= new Blob([content], {type: 'xml/svg'})
# a.href = URL.createObjectURL(blob)
# a.download = 'test.svg'
# })
# """)
.add_schema(
schema=scope,
shape="circle",
center=["50%", "50%"], # 宽高:900px*500px
radius="60%",
angleaxis_opts=opts.AngleAxisOpts(
min_=0,
max_=360,
is_clockwise=False,
interval=10,
axistick_opts=opts.AxisTickOpts(is_show=True),
axislabel_opts=opts.LabelOpts(is_show=True),
axisline_opts=opts.AxisLineOpts(is_show=True),
splitline_opts=opts.SplitLineOpts(is_show=True)
),
radiusaxis_opts=opts.RadiusAxisOpts(
min_=0,
max_=30,
interval=5,
splitarea_opts=opts.SplitAreaOpts(
is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
),
),
polar_opts=opts.PolarOpts(),
splitline_opt=opts.SplitLineOpts(is_show=False)
)
.add(
series_name="许一",
data=data_radar[0],
areastyle_opts=opts.AreaStyleOpts(opacity=0.2),
linestyle_opts=opts.LineStyleOpts(width=2),
color='#fc5a50'
)
.add(
series_name="刘二",
data=data_radar[1],
areastyle_opts=opts.AreaStyleOpts(opacity=0.2),
linestyle_opts=opts.LineStyleOpts(width=2),
color='white'
)
.add(
series_name="张三",
data=data_radar[2],
areastyle_opts=opts.AreaStyleOpts(opacity=0.2),
linestyle_opts=opts.LineStyleOpts(width=2),
color='white'
)
.add(
series_name="李四",
data=data_radar[3],
areastyle_opts=opts.AreaStyleOpts(opacity=0.2),
linestyle_opts=opts.LineStyleOpts(width=2),
color='#aa23ff'
)
.add(
series_name="王五",
data=data_radar[4],
areastyle_opts=opts.AreaStyleOpts(opacity=0.2),
linestyle_opts=opts.LineStyleOpts(width=2),
color='#fcb001'
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
#.set_global_opts(title_opts=opts.TitleOpts(title='员工评价', pos_left='left'))
.render("雷达图示例.html")
)
# 这种方法效果不好,暂时不要。
# from snapshot_phantomjs import snapshot
# make_snapshot(snapshot, c.render(), "a.png")
尝试在上面的基础上,把pyecharts 导出存为一般的png图
参考
也不复杂就是
把下载好的 phantomjs 的路径加到系统变量就可以了。
成功复现~!
但是不知道为什么 导出的图片会有这种 网格点,
买了本书 但是 还在路上。
先用其他方法来画图把,其实这个网页版的图还不错。
尝试在上面的基础上,把pyecharts 导出存为一般的矢量图
参考
下载了个寂寞
先不下载了
用pygal画雷达图
参考
他这个其实也是官网的例子。