Py学习  »  Python

Pyecharts丨极其强大的Python数据可视化模块

python • 5 年前 • 721 次点击  


前言

昨天发了一篇关于【Matplotlib】的数据可视化文章,有一位小伙伴说可以直接使用Pyecharts,然后我就看了,发现确实,很强大,效果图也是非常的好看

安装Pyecharts

pip install Pyecharts


分享一个里面的内容

GeoLines(地理坐标系线图)

用于带有起点和终点信息的线数据的绘制,主要用于地图上的航线,路线的可视化。

GeoLines.add() 方法签名

add(name, data,
   maptype='china',
   symbol=None,
   symbol_size=12,
   border_color="#111",
   geo_normal_color="#323c48",
   geo_emphasis_color="#2a333d",
   geo_cities_coords=None,
   geo_effect_period=6,
   geo_effect_traillength=0,
   geo_effect_color='#fff',
   geo_effect_symbol='circle',
   geo_effect_symbolsize=5,
   is_geo_effect_show=True,
   is_roam=True, **kwargs)
  • name -> str
    图例名称

  • data -> [list], 包含列表的列表
    数据项,数据中,每一行是一个『数据项』,每一列属于一个『维度』。每一行包含两个或三个数据,如 ["广州", "北京"] 或 ["广州", "北京",100],则指定从广州到北京。第三个值用于表示该 line 的数值,该值可省略。

  • maptype -> str
    地图类型。 从 v0.3.2+ 起,地图已经变为扩展包,支持全国省份,全国城市,全国区县,全球国家等地图

  • symbol -> str
    线两端的标记类型,可以是一个数组分别指定两端,也可以是单个统一指定。

  • symbol_size -> int
    线两端的标记大小,可以是一个数组分别指定两端,也可以是单个统一指定。

  • border_color -> str
    地图边界颜色。默认为 '#111'

  • geo_normal_color -> str
    正常状态下地图区域的颜色。默认为 '#323c48'

  • geo_emphasis_color -> str
    高亮状态下地图区域的颜色。默认为 '#2a333d'

  • geo_cities_coords -> dict
    用户自定义地区经纬度,类似如 {'阿城': [126.58, 45.32],} 这样的字典,当用于提供了该参数时,将会覆盖原有预存的区域坐标信息。

  • geo_effect_period -> int/float
    特效动画的时间,单位为 s,默认为 6s

  • geo_effect_traillength -> float
    特效尾迹的长度。取从 0 到 1 的值,数值越大尾迹越长。默认为 0

  • geo_effect_color -> str
    特效标记的颜色。默认为 '#fff'

  • geo_effect_symbol -> str
    特效图形的标记。有 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'plane' 可选。

  • geo_effect_symbolsize -> int/list
    特效标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示高和宽,例如 [20, 10] 表示标记宽为 20,高为 10。

  • is_geo_effect_show -> bool
    是否显示特效。

  • is_roam -> bool
    是否开启鼠标缩放和平移漫游。默认为 True
    如果只想要开启缩放或者平移,可以设置成'scale'或者'move'。设置成 True 为都开启


默认效果


from pyecharts import GeoLines, Style
style = Style(
   title_top="#fff",
   title_pos = "center",
   width=1200,
   height=600,
   background_color="#404a59"
)
data_guangzhou = [
   ["广州", "上海"],
   ["广州", "北京"],
   ["广州", "南京"],
   ["广州", "重庆"],
   ["广州", "兰州"],
   ["广州", "杭州"]
]
geolines = GeoLines("GeoLines 示例", **style.init_style)
geolines.add("从广州出发", data_guangzhou, is_legend_show=False)
geolines.render()


稍加配置

from pyecharts import GeoLines, Style
style_geo = style.add(
   is_label_show=True,
   line_curve=0.2,
   line_opacity=0.6,
   legend_text_color="#eee",
   legend_pos="right",
   geo_effect_symbol="plane",
   geo_effect_symbolsize=15,
   label_color=['#a6c84c', '#ffa022', '#46bee9'],
   label_pos="right",
   label_formatter="{b}",
   label_text_color="#eee",
)
geolines = GeoLines("GeoLines 示例", **style.init_style)
geolines.add("从广州出发", data_guangzhou, **style_geo)
geolines.render()


指定数值

from pyecharts import GeoLines, Style
data_guangzhou = [
   ["广州", "上海", 10],
   ["广州", "北京", 20],
   ["广州", "南京", 30],
   ["广州", "重庆", 40],
   ["广州", "兰州", 50],
   ["广州", "杭州", 60],
]
lines = GeoLines("GeoLines 示例", **style.init_style)
lines.add(
   "从广州出发", data_guangzhou, tooltip_formatter="{a} : {c}", **style_geo
)
lines.render()


多例模式


from pyecharts import GeoLines, Style
data_beijing = [
   ["北京", "上海"],
   [ "北京", "广州"],
   ["北京", "南京"],
   ["北京", "重庆"],
   ["北京", "兰州"],
   ["北京", "杭州"]
]
geolines = GeoLines("GeoLines 示例", **style.init_style)
geolines.add("从广州出发", data_guangzhou, **style_geo)
geolines.add("从北京出发", data_beijing, **style_geo)
geolines.render()


单例模式,指定 legend_selectedmode="single"

from pyecharts import GeoLines, Style
style_geo = style.add(
   is_label_show=True,
   line_curve=0.2,
   line_opacity=0.6,
   legend_text_color="#eee",
   legend_pos="right",
   geo_effect_symbol="plane",
   geo_effect_symbolsize=15,
   label_color=['#a6c84c', '#ffa022', '#46bee9'],
   label_pos="right",
   label_formatter="{b}",
   label_text_color="#eee",
   legend_selectedmode="single", #指定单例模式
)
geolines = GeoLines("GeoLines 示例", **style.init_style)
geolines.add("从广州出发", data_guangzhou, **style_geo)
geolines.add("从北京出发", data_beijing, **style_geo)
geolines.render()


是不是很有强大,很好看?!


这只是其中的一种可视化图像,里面还有很多,比如:

  • Bar(柱状图/条形图)

  • Bar3D(3D 柱状图)

  • Boxplot(箱形图)

  • EffectScatter(带有涟漪特效动画的散点图)

  • Funnel(漏斗图)

  • Gauge(仪表盘)

  • Geo(地理坐标系)

  • GeoLines(地理坐标系线图)

  • Graph(关系图)

  • HeatMap(热力图)

  • Kline/Candlestick(K线图)

  • Line(折线/面积图)

  • Line3D(3D 折线图)

  • Liquid(水球图)

  • Map(地图)

  • Parallel(平行坐标系)

  • Pie(饼图)

  • Polar(极坐标系)

  • Radar(雷达图)

  • Sankey(桑基图)

  • Scatter(散点图)

  • Scatter3D(3D 散点图)

  • ThemeRiver(主题河流图)

  • TreeMap(矩形树图)

  • WordCloud(词云图)

具体的详细内容:http://pyecharts.org/#/

点击原文链接即可直接到达


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/KLhcBG5BU2
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/12801
 
721 次点击