本篇文章给大家分享的是有关Python中怎么利用pyecharts实现数据可视化,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
地图
首先导入需要的包
from pyecharts.charts import Pie ,Grid,Bar,Line from pyecharts.faker import Faker #数据包from pyecharts.charts import Map,Geo from pyecharts import options as opts from pyecharts.globals import ThemeType
OK,我现在有一个省份的一组数据,大概长这样
locate =['合肥市', '阜阳市', '亳州市', '安庆市', '马鞍山市', '铜陵市', '六安市', '滁州市', '池州市','蚌埠市','芜湖市','宿州市','宣城市','淮北市','淮南市','黄山市']` data =['115','105','72','66','30','22','41','11','11','88','27','27','5','22','14','9']
这也是接触到的需要绘制地图的数据格式,两个list,一个是地名,一个是每个城市对应的数据,现在执行以下代码就可以得到安徽省的疫情地图。
list1 = [[locate[i],data[i]] for i in range(len(locate))] #首先创建数据 map_1 = Map(init_opts=opts.InitOpts(width="400px", height="460px")) #创建地图,其中括号内可以调整大小,也可以修改主题颜色。 map_1.add("安徽疫情", list1, maptype="安徽") #添加安徽地图 map_1.set_global_opts( #设置全局配置项#title_opts=opts.TitleOpts(title="安徽疫情"), 添加标题 visualmap_opts=opts.VisualMapOpts(max_=120, is_piecewise=True),#最大数据范围 并且使用分段 legend_opts=opts.LegendOpts(is_show=False), #是否显示图例 ) map_1.render_notebook() #直接在notebook中显示# map_1.render('map1.html') 将地图以html形式保存在工作目录下
当然地图还有很多可以自定义的配置项,选择需要的配置项添加到对应的函数中即可。
# 数据项 (坐标点名称,坐标点值) data_pair: Sequence, # 地图类型,具体参考 pyecharts.datasets.map_filenames.json 文件 maptype: str = "china", # 是否选中图例 is_selected: bool = True, # 是否开启鼠标缩放和平移漫游。 is_roam: bool = True, # 当前视角的中心点,用经纬度表示 center: Optional[Sequence] = None, # 当前视角的缩放比例。 zoom: Optional[Numeric] = 1, # 自定义地区的名称映射 name_map: Optional[dict] = None, # 标记图形形状 symbol: Optional[str] = None, # 是否显示标记图形 is_map_symbol_show: bool = True, # 标签配置项,参考 `series_options.LabelOpts` label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(), # 提示框组件配置项,参考 `series_options.TooltipOpts` tooltip_opts: Union[opts.TooltipOpts, dict, None] = None, # 图元样式配置项,参考 `series_options.ItemStyleOpts` itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None, # 高亮标签配置项,参考 `series_options.LabelOpts` emphasis_label_opts: Union[opts.LabelOpts, dict, None] = None, # 高亮图元样式配置项,参考 `series_options.ItemStyleOpts` emphasis_itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
继续使用地图里的数据绘制饼图,现在想看安徽各地区疫情分布比,就可以考虑使用饼图(玫瑰图)。详细代码
map_2 = ( Pie(init_opts=opts.InitOpts(width="600px", height="500px")) 创建一个饼图 .add( "", #图名 [[locate[i],data[i]] for i in range(len(locate))], #添加数据 radius=["40%", "75%"], # 调整半径 ) .set_global_opts( legend_opts=opts.LegendOpts( orient="vertical", pos_top="10%", pos_left="88%"#图例设置 ), ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) #设置标签 ) map_2.render_notebook() #直接在notebook中显示#map_2.render('map2.html') #保存到本地柱状图
demo
c = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) #数据配置 .add_yaxis("商家B", Faker.values()) #数据配置 .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题")) #全局配置标题 ) c.render_notebook()通过添加配置项可以调整标题、图例、粗细、位置、背景图等等
# 系列数据 yaxis_data: Sequence[Numeric, opts.BarItem, dict], # 是否选中图例 is_selected: bool = True, # 使用的 x 轴的 index,在单个图表实例中存在多个 x 轴的时候有用。 xaxis_index: Optional[Numeric] = None, # 使用的 y 轴的 index,在单个图表实例中存在多个 y 轴的时候有用。 yaxis_index: Optional[Numeric] = None, # 系列 label 颜色 color: Optional[str] = None, # 数据堆叠,同个类目轴上系列配置相同的 stack 值可以堆叠放置。 stack: Optional[str] = None, # 同一系列的柱间距离,默认为类目间距的 20%,可设固定值 category_gap: Union[Numeric, str] = "20%", # 不同系列的柱间距离,为百分比(如 '30%',表示柱子宽度的 30%)。# 如果想要两个系列的柱子重叠,可以设置 gap 为 '-100%'。这在用柱子做背景的时候有用。 gap: Optional[str] = None, # 标签配置项,参考 `series_options.LabelOpts` label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(), # 标记点配置项,参考 `series_options.MarkPointOpts` markpoint_opts: Union[opts.MarkPointOpts, dict, None] = None, # 标记线配置项,参考 `series_options.MarkLineOpts` markline_opts: Union[opts.MarkLineOpts, dict, None] = None, # 提示框组件配置项,参考 `series_options.TooltipOpts` tooltip_opts: Union[opts.TooltipOpts, dict, None] = None, # 图元样式配置项,参考 `series_options.ItemStyleOpts` itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
如果想要同时叠加绘制图形可以采用参考以下方法
def two_pic() -> Bar: x = Faker.choose() #选择数据 bar = ( #先绘制bar Bar() .add_xaxis(x) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="Overlap-line+scatter")) ) line = ( #再添加line Line() .add_xaxis(x) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) ) bar.overlap(line) return bar two_pic().render_notebook()总结
以上就是Python中怎么利用pyecharts实现数据可视化,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。