echartsまたはpyechartsを使用してハイエンドの大気可視化を実現する
https://zhuanlan.zhihu.com/p/25841878
はじめに
Echartsは、Baiduによってオープンソース化されたデータ視覚化ツールであり、優れたインタラクティブ性と精巧なグラフデザインにより、多くの開発者から認められています。Pythonは表現力豊かな言語であり、データ処理に非常に適しています。データ分析がデータの視覚化と出会うとき、pyechartsが生まれました。pyecharts apiは次を参照できます:https ://pyecharts.org/#/zh-cn/chart_api
-
Echarts、Baiduオープンソースデータ視覚化ツール、優れたインタラクティブ性、美しいチャート
-
Pyecharts = Python + Echarts
は、
新しいバージョンのecharts 1.X をPython で使用します。下位互換性
はなく、Python3とTypeHintを完全に受け入れます。つまり、元の0.5.x バージョンは維持されなくなります。 -
主にグローバル構成コンポーネントとシリーズ構成コンポーネントに分かれています。
- シリーズ構成アイテムset_series_opts()は、プリミティブスタイル、テキストスタイル、ラベルスタイル、点線スタイルなどを構成できます。
- グローバル構成アイテムset_global_opts()は、タイトル、アニメーション、座標軸、凡例などを構成できます。
視覚的表示(コード+凡例)
bar.render_notebook() # 直接使用jupyter直接进行交互,更方便一点
bar.render('temp.html') # 渲染成html,再打开HTML文件
- Step1、echartsの紹介(はじめに)
<script src="echarts.min.js"></script> # 因为使用第三方的js,所以要提前加载进来
- ステップ2、echartsオブジェクトを生成(作成)
var myChart = echarts.init(document.getElementById('main')); # 对echarts进行初始化,得到对象myChart
- ステップ3、オプションオブジェクトを介して構成する必要があります(コンテンツはオプションです。ここで構成します)(構成)
pyechartsでは、オプション構成項目を使用して、すべてがオプションです。
- ステップ4、ロードオプション(ロード)
- 構成プロセスの一部のフィールドの具体的な意味は次のとおりです。https:
//www.echartsjs.com/zh/tutorial.html#ECharts%20%E5%9F%BA%E7%A1%80%E6%A6%82% E5%BF%B5%E6%A6%82%E8%A7%88
1.棒グラフ
echartsで実装
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main')); // 先得到一个main
// 指定图表的配置项和数据
// 生成一个option
var option = {
title: {
text: '昨日新增确诊国家 Top10'
},
tooltip: {},
legend: {
data:['新增确诊']
},
xAxis: {
data: ["美国","西班牙","意大利","法国","德国","伊朗","英国","以色列","荷兰","奥地利"]
},
yAxis: {},
series: [{
name: '新增',
type: 'bar', // 代表我们要呈现的图的类型为条形图
data: [13981, 7457, 5210, 2933, 1970, 1700, 1452, 1000, 852, 684]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
達成するためにpyechartsを使用してください
# 用pyecharts来实现
import pyecharts.options as opts
from pyecharts.charts import Bar
country = ["美国","西班牙","意大利","法国","德国","伊朗","英国","以色列","荷兰","奥地利"]
data = [13981, 7457, 5210, 2933, 1970, 1700, 1452, 1000, 852, 684]
bar = (
Bar()
.add_xaxis(country)
.add_yaxis("新增确诊", data)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="昨日新增确诊国家 Top10"))
)
bar.render('temp.html') # 直接使用jupyter直接进行交互
#bar.render_notebook() # render的意思是把之前得到的bar对象渲染为HTML文件
# 柱状图绘制
import pyecharts.options as opts
from pyecharts.charts import Bar
# 绘制多列柱状图
country = ["美国","西班牙","意大利","法国","德国","伊朗","英国","以色列","荷兰","奥地利"]
data1 = [69223, 49515, 74386, 25233, 37323, 27017, 9529, 2369, 6412, 5560]
data2 = [13981, 7457, 5210, 2933, 1970, 1700, 1452, 1000, 852, 684]
bar = (
Bar()
.add_xaxis(country)
.add_yaxis("累计确诊", data1)
.add_yaxis("新增确诊", data2)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="昨日新增确诊国家 Top10"))
)
bar.render('temp.html') # render的意思是把之前得到的bar对象渲染为HTML文件
2.折れ線グラフ
import pyecharts.options as opts
from pyecharts.charts import Line
# 设置折线图
line=Line()
# 设置x轴数据
line.add_xaxis(["201{}年/{}季度".format(y,z)
for y in range(4)
for z in range(1,5)])
# 设置y轴数据
line.add_yaxis(
"手机销量",
[4.80,4.10,6.00,6.50,5.80,5.20,6.80,7.40,
6.00,5.60,7.50,7.80,6.30,5.90,8.00,8.40]
)
line.set_global_opts(
#设置x轴标签旋转角度
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-40),),
#设置y轴名称
yaxis_opts=opts.AxisOpts(name="销量(单位/百万台)"),
#设置图表标题
title_opts=opts.TitleOpts(title="折线图"))
#渲染图表
line.render_notebook()
3.円グラフ
# 绘制饼图
from pyecharts import options as opts
from pyecharts.charts import Page, Pie
v1=["啤酒","可乐","雪碧","咖啡","奶茶"]
v2=[30,19,21,12,18]
pie = (
Pie()
.add("", [list(z) for z in zip(v1,v2)])
.set_global_opts(title_opts=opts.TitleOpts(title="销售收入占比"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}%"))#格式化标签输出内容
)
pie.render_notebook()
4.レーダーチャート
# 绘制雷达图
from pyecharts import options as opts
from pyecharts.charts import Page, Radar
v1 = [[4300, 10000, 28000, 35000, 50000, 19000]]
v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]
radar = (
Radar()
.add_schema(
schema=[
opts.RadarIndicatorItem(name="KDA", max_=6500),
opts.RadarIndicatorItem(name="输出", max_=16000),
opts.RadarIndicatorItem(name="经济", max_=30000),
opts.RadarIndicatorItem(name="生存", max_=38000),
opts.RadarIndicatorItem(name="推进", max_=52000),
opts.RadarIndicatorItem(name="打野", max_=25000),
]
)
.add("鲁班", v1, #添加系列名称及数据
color="red", #设置边框线的颜色
areastyle_opts = opts.AreaStyleOpts(#设置填充的属性
opacity = 0.5, #透明度
color="red" #填充颜色
),)
.add("后裔", v2,color="blue",
areastyle_opts = opts.AreaStyleOpts(
opacity = 0.5,#透明度
color="blue"
),)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="英雄成长对比"))
)
radar.render_notebook()
5.バラのイラスト
import pyecharts.options as opts
from pyecharts.charts import Pie
# 绘制玫瑰图
rose = (
Pie()
.add(
"",
[list(z) for z in zip(["201{}年/{}季度".format(y,z)
for y in range(2)
for z in range(1,3)], [4.80,4.10,5.80,5.20])],
#设置内径外径
radius=["0%", "75%"],
#玫瑰图有两种类型
rosetype="radius",
label_opts=opts.LabelOpts(is_show=True),
)
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例"))
)
rose.render_notebook()