pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)

作者:俊欣

来源:关于数据分析与可视化

今天来给大家分享一下Pyecharts模块,说到它我们就不得不提Echarts,它是由百度开源的一款使用JavaScript实现的开源可视化库,涵盖了各种图表、满足各类业务需求,而pyecharts也就是Python与Echarts结合之后的产物,封装了Echarts各类图表的基本操作,然后通过渲染机制,输出一个包含JS代码的HTML文件。

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(1)

01、安装与导入模块

说到安装模块,我们可以这样来进行,

pip install pyecharts

使用Pyecharts创建图形的基本步骤是

1. 准备数据

2. 设计图形的样式、背景颜色

3. Pyecharts绘图

4. 设计图表的标题或者图例等属性

5. 导出至html

from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.faker import Faker c = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家1", Faker.values()) .add_yaxis("商家2", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="这是主标题", subtitle="这是副标题")) .render("bar_base.html") )

出来的结果是

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(2)

02、数据准备

import pandas as pd import numpy as np data = pd.DataFrame({'x':np.arange(1,101), 'y':["随机生成的数字"]}) df = pd.read_excel("你的文件的路径")

03、Pycharts还提供内置的数据集

Pyecharts内部还提供了一些数据集,主要包含类别数据、时间数据、颜色数据、地理数据、世界人口数据等等,通过choose()方法来随机选择使用哪个

def choose(self) -> list: return random.choice( [ self.clothes, self.drinks, self.phones, self.fruits, self.animal, self.dogs, self.week, ] )

04、图形的样式

说到图形的样式,大概都这么几种

class _ThemeType: BUILTIN_THEMES = ["light", "dark", "white"] LIGHT = "light" DARK = "dark" WHITE = "white" CHALK: str = "chalk" ESSOS: str = "essos" INFOGRAPHIC: str = "infographic" MACARONS: str = "macarons" PURPLE_PASSION: str = "purple-passion" ROMA: str = "roma" ROMANTIC: str = "romantic" SHINE: str = "shine" VINTAGE: str = "vintage" WALDEN: str = "walden" WESTEROS: str = "westeros" WONDERLAND: str = "wonderland" HALLOWEEN: str = "halloween"

06、设置标题、副标题

设置标题以及副标题的代码如下

set_global_opts(title_opts=opts.TitleOpts(title="这是主标题", subtitle="这是副标题"))

07、设置图例与位置

legend_opts=opts.LegendOpts(type_="scroll", orient="vertical", pos_top="15%",pos_left="7%")) # 图裂的位置 label_opts=opts.LabelOpts(formatter="{b}: {c}") # 结果的展现形式

08、导出结果

render("test.html") # 如果是在jupyter notebook当中 render_notebook()

09、Pyecharts绘图

堆叠柱状图

同个品类不同类目的柱子可以堆叠起来呈现,也就是堆叠的柱状图

c = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家1", Faker.values(), stack="stack1") .add_yaxis("商家2", Faker.values(), stack="stack1") .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆叠数据(全部)")) .render("bar_stack_1212.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(3)

当然我们也可以部分堆叠,而不是上面这种全部的堆叠

c = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(Faker.choose()) .add_yaxis("商家1", Faker.values(), stack="stack0") .add_yaxis("商家2", Faker.values(), stack="stack0") .add_yaxis("商家3", Faker.values()) .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆叠数据(部分)")) .render("bar_stack_part.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(4)

柱状图的横坐标倾斜一丢丢

有时候横坐标的标识字数较多,X轴上显示全,我们可以将标识的字体稍微倾斜一些

c = ( Bar() .add_xaxis( [ "名字相当长的X轴标签1", "名字相当长的X轴标签2", "名字相当长的X轴标签3", "名字相当长的X轴标签4", "名字相当长的X轴标签5", "名字相当长的X轴标签6", ] ) .add_yaxis("商家1", Faker.values()) .add_yaxis("商家2", Faker.values()) .set_global_opts( xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=15)), title_opts=opts.TitleOpts(title="Bar-旋转X轴标签", subtitle="副标题"), ) .render("test.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(5)

柱状图可以自动缩放的

通过底下的滑块来实现横坐标的缩放、范围的调整等等

c = ( Bar() .add_xaxis(Faker.days_attrs) .add_yaxis("商家1", Faker.days_values) .set_global_opts( title_opts=opts.TitleOpts(title="Bar-数据缩放(拖快-水平)"), datazoom_opts=opts.DataZoomOpts(), ) .render("bar_datazoom_slider.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(6)

当然滑块也可以放在垂直的右侧

c = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(Faker.days_attrs) .add_yaxis("商家1", Faker.days_values, color=Faker.rand_color()) .set_global_opts( title_opts=opts.TitleOpts(title="Bar-DataZoom(滑块-垂直)"), datazoom_opts=opts.DataZoomOpts(orient="vertical"), ) .render("bar_datazoom_slider_vertical.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(7)

我们也可以通过拖动里面的柱子来实现数据缩放、范围的改变

c = ( Bar() .add_xaxis(Faker.days_attrs) .add_yaxis("商家1", Faker.days_values) .set_global_opts( title_opts=opts.TitleOpts(title="Bar-DataZoom(内置 外置)"), datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")], ) .render("bar_datazoom_both.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(8)

柱状图给X轴Y轴命名的

c = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(Faker.choose()) .add_yaxis("商家1", Faker.values()) .add_yaxis("商家2", Faker.values()) .set_global_opts( title_opts=opts.TitleOpts(title="Bar-XY 轴名称"), yaxis_opts=opts.AxisOpts(name="这个是 Y 轴"), xaxis_opts=opts.AxisOpts(name="这个是 X 轴"), ) .render("bar_name_xyaxis.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(9)

柱状图柱间距离不相同的

在柱状图当中,不同柱子之间的距离也可以不是相同的

c = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.WHITE)) .add_xaxis(Faker.choose()) .add_yaxis("商家1", Faker.values(), gap="0%") .add_yaxis("商家2", Faker.values(), gap="0%") .set_global_opts(title_opts=opts.TitleOpts(title="Bar-柱间距离不同")) .render("bar_different_series_gap.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(10)

柱状图水平状态的

还有水平方向的柱状图

c = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家1", Faker.values()) .add_yaxis("商家2", Faker.values()) .reversal_axis() .set_series_opts(label_opts=opts.LabelOpts(position="right")) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-水平方向")) .render("bar_reversal_axis.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(11)

直方图

c = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家1", Faker.values(), category_gap=0, color=Faker.rand_color()) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方图")) .render("bar_histogram.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(12)

箱型图

箱型图更加有利于我们来观察数据的内在分布

from pyecharts.charts import Boxplot v1 = [ [850, 740, 950, 1090, 930, 850, 950, 980, 1000, 880, 1000, 980], [980, 940, 960, 940, 900, 800, 850, 880, 950, 840, 830, 800], ] v2 = [ [890, 820, 820, 820, 800, 770, 760, 760, 750, 760, 950, 920], [900, 840, 800, 810, 760, 810, 790, 850, 820, 850, 870, 880], ] c = Boxplot() c.add_xaxis(["A", "B"]) c.add_yaxis("类目1", c.prepare_data(v1)) c.add_yaxis("类目2", c.prepare_data(v2)) c.set_global_opts(title_opts=opts.TitleOpts(title="箱型图-基本示例")) c.render("boxplot_test.html")

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(13)

日历图

日历图具体指按照日历的布局,用颜色展现每一天的数据,从而比较直观地看到全年的数据情况,例如展示超市全年的销售额,从而看出具体某个月份或者某个星期的销售额比较低

c = ( Calendar(init_opts=opts.InitOpts(theme=ThemeType.INFOGRAPHIC)) .add("", data, calendar_opts=opts.CalendarOpts(range_="2020")) .set_global_opts( title_opts=opts.TitleOpts(title="日历图-2020年超市的销售额"), visualmap_opts=opts.VisualMapOpts( max_=250000, min_=10000, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), ) .render("calendar_test.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(14)

K线图

c = ( Kline(init_opts=opts.InitOpts(theme=ThemeType.ESSOS)) .add_xaxis(["2020/7/{}".format(i 1) for i in range(31)]) .add_yaxis("kline", data) .set_global_opts( yaxis_opts=opts.AxisOpts(is_scale=True), xaxis_opts=opts.AxisOpts(is_scale=True), title_opts=opts.TitleOpts(title="K线图-基本示例"), ) .render("kline_test.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(15)

漏斗图

from pyecharts.charts import Funnel c = ( Funnel() .add("类目", [list(z) for z in zip(Faker.choose(), Faker.values())]) .set_global_opts(title_opts=opts.TitleOpts(title="漏斗图-基本示例")) .render("funnel_test.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(16)

折线图

c = ( Line() .add_xaxis(Faker.choose()) .add_yaxis("商家1", Faker.values()) .add_yaxis("商家2", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="折线图-基本示例")) .render("line_test.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(17)

水球图

水球图通常来显示指标的完成程度

from pyecharts.charts import Liquid c = ( Liquid() .add("lq", [0.55, 0.75]) .set_global_opts(title_opts=opts.TitleOpts(title="Liquid-基本示例")) .render("liquid_test.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(18)

词云图

c = ( WordCloud() .add(series_name="词云图实例", data_pair=data, word_size_range=[5, 100]) .set_global_opts( title_opts=opts.TitleOpts( title="词云图实例", title_textstyle_opts=opts.TextStyleOpts(font_size=23) ), tooltip_opts=opts.TooltipOpts(is_show=True), ) .render("basic_wordcloud.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(19)

饼图

c = ( Pie() .add("类目", [list(z) for z in zip(Faker.choose(), Faker.values())]) .set_global_opts(title_opts=opts.TitleOpts(title="饼图-基本示例")) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) .render("pie_test.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(20)

仪表盘图

仪表盘的绘制也可以用来展示指标的完成程度

from pyecharts.charts import Gauge c = ( Gauge() .add("", [("完成率", 70)]) .set_global_opts(title_opts=opts.TitleOpts(title="仪表盘-基本示例")) .render("gauge_test.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(21)

地图

c = ( Map() .add("商家1", [list(z) for z in zip(Faker.provinces, Faker.values())], "china") .set_global_opts(title_opts=opts.TitleOpts(title="地图-基本示例")) .render("map_test.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(22)

涟漪散点图

c = ( EffectScatter() .add_xaxis(Faker.choose()) .add_yaxis("商家1", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="涟漪散点图-基本示例")) .render("effectscatter_test.html") )

pyecharts设置折线图大小(Pyecharts绘制22种超实用精美图表)(23)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页