zoukankan      html  css  js  c++  java
  • python绘图练习

    1 turtle绘制奥运五环图
    import turtle as p
    def drawCircle(x,y,c='red'):
        p.pu()# 抬起画笔
        p.goto(x,y) # 绘制圆的起始位置
        p.pd()# 放下画笔
        p.color(c)# 绘制c色圆环
        p.circle(30,360) #绘制圆:半径,角度
    p.pensize(3) # 画笔尺寸设置3
    drawCircle(0,0,'blue')
    drawCircle(60,0,'black')
    drawCircle(120,0,'red')
    drawCircle(90,-30,'green')
    drawCircle(30,-30,'yellow')    
    
    p.done()
    
    2.turtle绘制漫天雪花
    import turtle as p
    import random
    
    def snow(snow_count):
        p.hideturtle()
        p.speed(500)
        p.pensize(2)
        for i in range(snow_count):
            r = random.random()
            g = random.random()
            b = random.random()
            p.pencolor(r, g, b)
            p.pu()
            p.goto(random.randint(-350, 350), random.randint(1, 270))
            p.pd()
            dens = random.randint(8, 12)
            snowsize = random.randint(10, 14)
            for _ in range(dens):
                p.forward(snowsize)  # 向当前画笔方向移动snowsize像素长度
                p.backward(snowsize)  # 向当前画笔相反方向移动snowsize像素长度
                p.right(360 / dens)  # 顺时针移动360 / dens度
    
    def ground(ground_line_count):
        p.hideturtle()
        p.speed(500)
        for i in range(ground_line_count):
            p.pensize(random.randint(5, 10))
            x = random.randint(-400, 350)
            y = random.randint(-280, -1)
            r = -y / 280
            g = -y / 280
            b = -y / 280
            p.pencolor(r, g, b)
            p.penup()  # 抬起画笔
            p.goto(x, y)  # 让画笔移动到此位置
            p.pendown()  # 放下画笔
            p.forward(random.randint(40, 100))  # 眼当前画笔方向向前移动40~100距离
    
    def main():
        p.setup(800, 600, 0, 0)
        # p.tracer(False)
        p.bgcolor("black")
        snow(30)
        ground(30)
        # p.tracer(True)
        p.mainloop()
    
    main()
    
    
    3 wordcloud词云图
    import hashlib
    import pandas as pd
    from wordcloud import WordCloud
    geo_data=pd.read_excel(r"../data/geo_data.xlsx")
    print(geo_data)
    # 0     深圳
    # 1     深圳
    # 2     深圳
    # 3     深圳
    # 4     深圳
    # 5     深圳
    # 6     深圳
    # 7     广州
    # 8     广州
    # 9     广州
    
    words = ','.join(x for x in geo_data['city'] if x != []) #筛选出非空列表值
    wc = WordCloud(
        background_color="green", #背景颜色"green"绿色
        max_words=100, #显示最大词数
        font_path='./fonts/simhei.ttf', #显示中文
        min_font_size=5,
        max_font_size=100,
        width=500  #图幅宽度
        )
    x = wc.generate(words)
    x.to_file('../data/geo_data.png')
    
    
    4 plotly画柱状图和折线图
    #柱状图+折线图
    import plotly.graph_objects as go
    fig = go.Figure()
    fig.add_trace(
        go.Scatter(
            x=[0, 1, 2, 3, 4, 5],
            y=[1.5, 1, 1.3, 0.7, 0.8, 0.9]
        ))
    fig.add_trace(
        go.Bar(
            x=[0, 1, 2, 3, 4, 5],
            y=[2, 0.5, 0.7, -1.2, 0.3, 0.4]
        ))
    fig.show()
    
    
    5 seaborn热力图
    # 导入库
    import seaborn as sns
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    # 生成数据集
    data = np.random.random((6,6))
    np.fill_diagonal(data,np.ones(6))
    features = ["prop1","prop2","prop3","prop4","prop5", "prop6"]
    data = pd.DataFrame(data, index = features, columns=features)
    print(data)
    # 绘制热力图
    heatmap_plot = sns.heatmap(data, center=0, cmap='gist_rainbow')
    plt.show()
    
    
    6 matplotlib折线图
    模块名称:example_utils.py,里面包括三个函数,各自功能如下:
    import matplotlib.pyplot as plt
    
    # 创建画图fig和axes
    def setup_axes():
        fig, axes = plt.subplots(ncols=3, figsize=(6.5,3))
        for ax in fig.axes:
            ax.set(xticks=[], yticks=[])
        fig.subplots_adjust(wspace=0, left=0, right=0.93)
        return fig, axes
    # 图片标题
    def title(fig, text, y=0.9):
        fig.suptitle(text, size=14, y=y, weight='semibold', x=0.98, ha='right',
                     bbox=dict(boxstyle='round', fc='floralwhite', ec='#8B7E66',
                               lw=2))
    # 为数据添加文本注释
    def label(ax, text, y=0):
        ax.annotate(text, xy=(0.5, 0.00), xycoords='axes fraction', ha='center',
                    style='italic',
                    bbox=dict(boxstyle='round', facecolor='floralwhite',
                              ec='#8B7E66'))
    
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    import example_utils
    
    x = np.linspace(0, 10, 100)
    
    fig, axes = example_utils.setup_axes()
    for ax in axes:
        ax.margins(y=0.10)
    
    # 子图1 默认plot多条线,颜色系统分配
    for i in range(1, 6):
        axes[0].plot(x, i * x)
    
    # 子图2 展示线的不同linestyle
    for i, ls in enumerate(['-', '--', ':', '-.']):
        axes[1].plot(x, np.cos(x) + i, linestyle=ls)
    
    # 子图3 展示线的不同linestyle和marker
    for i, (ls, mk) in enumerate(zip(['', '-', ':'], ['o', '^', 's'])):
        axes[2].plot(x, np.cos(x) + i * x, linestyle=ls, marker=mk, markevery=10)
    
    # 设置标题
    # example_utils.title(fig, '"ax.plot(x, y, ...)": Lines and/or markers', y=0.95)
    # 保存图片
    fig.savefig('plot_example.png', facecolor='none')
    # 展示图片
    plt.show()
    
    
    7 matplotlib散点图
    """
    散点图的基本用法
    """
    import numpy as np
    import matplotlib.pyplot as plt
    
    import example_utils
    
    # 随机生成数据
    np.random.seed(1874)
    x, y, z = np.random.normal(0, 1, (3, 100))
    t = np.arctan2(y, x)
    size = 50 * np.cos(2 * t)**2 + 10
    
    fig, axes = example_utils.setup_axes()
    
    # 子图1
    axes[0].scatter(x, y, marker='o',  color='darkblue', facecolor='white', s=80)
    example_utils.label(axes[0], 'scatter(x, y)')
    
    # 子图2
    axes[1].scatter(x, y, marker='s', color='darkblue', s=size)
    example_utils.label(axes[1], 'scatter(x, y, s)')
    
    # 子图3
    axes[2].scatter(x, y, s=size, c=z,  cmap='gist_ncar')
    example_utils.label(axes[2], 'scatter(x, y, s, c)')
    
    # example_utils.title(fig, '"ax.scatter(...)": Colored/scaled markers',
    #                     y=0.95)
    fig.savefig('scatter_example.png', facecolor='none')
    
    plt.show()
    
    
    8 matplotlib柱状图
    import numpy as np
    import matplotlib.pyplot as plt
    
    import example_utils
    
    
    def main():
        fig, axes = example_utils.setup_axes()
    
        basic_bar(axes[0])
        tornado(axes[1])
        general(axes[2])
    
        # example_utils.title(fig, '"ax.bar(...)": Plot rectangles')
        fig.savefig('bar_example.png', facecolor='none')
        plt.show()
    
    # 子图1
    def basic_bar(ax):
        y = [1, 3, 4, 5.5, 3, 2]
        err = [0.2, 1, 2.5, 1, 1, 0.5]
        x = np.arange(len(y))
        ax.bar(x, y, yerr=err, color='lightblue', ecolor='black')
        ax.margins(0.05)
        ax.set_ylim(bottom=0)
        example_utils.label(ax, 'bar(x, y, yerr=e)')
    
    # 子图2
    def tornado(ax):
        y = np.arange(8)
        x1 = y + np.random.random(8) + 1
        x2 = y + 3 * np.random.random(8) + 1
        ax.barh(y, x1, color='lightblue')
        ax.barh(y, -x2, color='salmon')
        ax.margins(0.15)
        example_utils.label(ax, 'barh(x, y)')
    
    # 子图3
    def general(ax):
        num = 10
        left = np.random.randint(0, 10, num)
        bottom = np.random.randint(0, 10, num)
        width = np.random.random(num) + 0.5
        height = np.random.random(num) + 0.5
        ax.bar(left, height, width, bottom, color='salmon')
        ax.margins(0.15)
        example_utils.label(ax, 'bar(l, h, w, b)')
    
    
    main()
    
    
    9 matplotlib等高线图
    import matplotlib.pyplot as plt
    import numpy as np
    from matplotlib.cbook import get_sample_data
    
    import example_utils
    
    z = np.load(get_sample_data('bivariate_normal.npy'))
    
    fig, axes = example_utils.setup_axes()
    
    axes[0].contour(z, cmap='gist_earth')
    example_utils.label(axes[0], 'contour')
    
    axes[1].contourf(z, cmap='gist_earth')
    example_utils.label(axes[1], 'contourf')
    
    axes[2].contourf(z, cmap='gist_earth')
    cont = axes[2].contour(z, colors='black')
    axes[2].clabel(cont, fontsize=6)
    example_utils.label(axes[2], 'contourf + contour
     + clabel')
    
    # example_utils.title(fig, '"contour, contourf, clabel": Contour/label 2D data',
    #                     y=0.96)
    fig.savefig('contour_example.png', facecolor='none')
    
    plt.show()
    
    
    10 imshow图
    import matplotlib.pyplot as plt
    import numpy as np
    from matplotlib.cbook import get_sample_data
    from mpl_toolkits import axes_grid1
    
    import example_utils
    
    
    def main():
        fig, axes = setup_axes()
        plot(axes, *load_data())
        # example_utils.title(fig, '"ax.imshow(data, ...)": Colormapped or RGB arrays')
        fig.savefig('imshow_example.png', facecolor='none')
        plt.show()
    
    
    def plot(axes, img_data, scalar_data, ny):
    
        # 默认线性插值
        axes[0].imshow(scalar_data, cmap='gist_earth', extent=[0, ny, ny, 0])
    
        # 最近邻插值
        axes[1].imshow(scalar_data, cmap='gist_earth', interpolation='nearest',
                       extent=[0, ny, ny, 0])
    
        # 展示RGB/RGBA数据
        axes[2].imshow(img_data)
    
    
    def load_data():
        img_data = plt.imread(get_sample_data('5.png'))
        ny, nx, nbands = img_data.shape
        scalar_data = np.load(get_sample_data('bivariate_normal.npy'))
        return img_data, scalar_data, ny
    
    
    def setup_axes():
        fig = plt.figure(figsize=(6, 3))
        axes = axes_grid1.ImageGrid(fig, [0, 0, .93, 1], (1, 3), axes_pad=0)
    
        for ax in axes:
            ax.set(xticks=[], yticks=[])
        return fig, axes
    
    
    main()
    
    
    11 pyecharts绘制仪表盘
    from pyecharts import charts
    
    # 仪表盘
    gauge = charts.Gauge()
    gauge.add('Python小例子', [('Python机器学习', 30), ('Python基础', 70.),
                            ('Python正则', 90)])
    gauge.render(path="./data/仪表盘.html")
    print('ok')
    
    
    12 pyecharts漏斗图
    from pyecharts import options as opts
    from pyecharts.charts import Funnel, Page
    from random import randint
    
    def funnel_base() -> Funnel:
      c = (
        Funnel()
        .add("豪车", [list(z) for z in zip(['宝马', '法拉利', '奔驰', '奥迪', '大众', '丰田', '特斯拉'],
                     [randint(1, 20) for _ in range(7)])])
        .set_global_opts(title_opts=opts.TitleOpts(title="豪车漏斗图"))
      )
      return c
    funnel_base().render('./img/car_fnnel.html')
    
    
    13 pyecharts日历图
    import datetime
    import random
    from pyecharts import options as opts
    from pyecharts.charts import Calendar
    
    def calendar_interval_1() -> Calendar:
        begin = datetime.date(2019, 1, 1)
        end = datetime.date(2019, 12, 27)
        data = [
            [str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]
            for i in range(0, (end - begin).days + 1, 2)  # 隔天统计
        ]
        calendar = (
          Calendar(init_opts=opts.InitOpts(width="1200px")).add(
                "", data, calendar_opts=opts.CalendarOpts(range_="2019"))
            .set_global_opts(
                title_opts=opts.TitleOpts(title="Calendar-2019年步数统计"),
                visualmap_opts=opts.VisualMapOpts(
                    max_=25000,
                    min_=1000,
                    orient="horizontal",
                    is_piecewise=True,
                    pos_top="230px",
                    pos_left="100px",
                ),
            )
        )
        return calendar
    
    calendar_interval_1().render('./img/calendar.html')
    
    
    14 pyecharts绘制graph图
    import json
    import os
    from pyecharts import options as opts
    from pyecharts.charts import Graph, Page
    
    def graph_base() -> Graph:
        nodes = [
            {"name": "cus1", "symbolSize": 10},
            {"name": "cus2", "symbolSize": 30},
            {"name": "cus3", "symbolSize": 20}
        ]
        links = []
        for i in nodes:
            if i.get('name') == 'cus1':
                continue
            for j in nodes:
                if j.get('name') == 'cus1':
                    continue
                links.append({"source": i.get("name"), "target": j.get("name")})
        c = (
            Graph()
            .add("", nodes, links, repulsion=8000)
            .set_global_opts(title_opts=opts.TitleOpts(title="customer-influence"))
        )
        return c
    
    
    15 pyecharts水球图
    from pyecharts import options as opts
    from pyecharts.charts import Liquid, Page
    from pyecharts.globals import SymbolType
    
    def liquid() -> Liquid:
        c = (
            Liquid()
            .add("lq", [0.67, 0.30, 0.15])
            .set_global_opts(title_opts=opts.TitleOpts(title="Liquid"))
        )
        return c
    
    liquid().render('./img/liquid.html')
    
    
    16 pyecharts饼图
    from pyecharts import options as opts
    from pyecharts.charts import Pie
    from random import randint
    
    def pie_base() -> Pie:
        c = (
            Pie()
            .add("", [list(z) for z in zip(['宝马', '法拉利', '奔驰', '奥迪', '大众', '丰田', '特斯拉'],
                                           [randint(1, 20) for _ in range(7)])])
            .set_global_opts(title_opts=opts.TitleOpts(title="Pie-基本示例"))
            .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
        )
        return c
    
    pie_base().render('./img/pie_pyecharts.html')
    
    
    17 pyecharts极坐标图
    import random
    from pyecharts import options as opts
    from pyecharts.charts import Page, Polar
    
    def polar_scatter0() -> Polar:
        data = [(alpha, random.randint(1, 100)) for alpha in range(101)] # r = random.randint(1, 100)
        print(data)
        c = (
            Polar()
            .add("", data, type_="bar", label_opts=opts.LabelOpts(is_show=False))
            .set_global_opts(title_opts=opts.TitleOpts(title="Polar"))
        )
        return c
    
    polar_scatter0().render('./img/polar.html')
    
    
    18 pyecharts词云图
    from pyecharts import options as opts
    from pyecharts.charts import Page, WordCloud
    from pyecharts.globals import SymbolType
    
    words = [
        ("Python", 100),
        ("C++", 80),
        ("Java", 95),
        ("R", 50),
        ("JavaScript", 79),
        ("C", 65)
    ]
    
    def wordcloud() -> WordCloud:
        c = (
            WordCloud()
            # word_size_range: 单词字体大小范围
            .add("", words, word_size_range=[20, 100], shape='cardioid')
            .set_global_opts(title_opts=opts.TitleOpts(title="WordCloud"))
        )
        return c
    
    wordcloud().render('./img/wordcloud.html')
    
    
    19 pyecharts系列柱状图
    from pyecharts import options as opts
    from pyecharts.charts import Bar
    from random import randint
    
    def bar_series() -> Bar:
        c = (
            Bar()
            .add_xaxis(['宝马', '法拉利', '奔驰', '奥迪', '大众', '丰田', '特斯拉'])
            .add_yaxis("销量", [randint(1, 20) for _ in range(7)])
            .add_yaxis("产量", [randint(1, 20) for _ in range(7)])
            .set_global_opts(title_opts=opts.TitleOpts(title="Bar的主标题", subtitle="Bar的副标题"))
        )
        return c
    
    bar_series().render('./img/bar_series.html')
    
    
    20 pyecharts热力图
    import random
    from pyecharts import options as opts
    from pyecharts.charts import HeatMap
    
    def heatmap_car() -> HeatMap:
        x = ['宝马', '法拉利', '奔驰', '奥迪', '大众', '丰田', '特斯拉']
        y = ['中国','日本','南非','澳大利亚','阿根廷','阿尔及利亚','法国','意大利','加拿大']
        value = [[i, j, random.randint(0, 100)]
                 for i in range(len(x)) for j in range(len(y))]
        c = (
            HeatMap()
            .add_xaxis(x)
            .add_yaxis("销量", y, value)
            .set_global_opts(
                title_opts=opts.TitleOpts(title="HeatMap"),
                visualmap_opts=opts.VisualMapOpts(),
            )
        )
        return c
    
    heatmap_car().render('./img/heatmap_pyecharts.html')
    
    
    21 matplotlib绘制动画
    matplotlib是python中最经典的绘图包,里面animation模块能绘制动画。
    
    首先导入小例子使用的模块:
    
    from matplotlib import pyplot as plt
    from matplotlib import animation
    from random import randint, random
    生成数据,frames_count是帧的个数,data_count每个帧的柱子个数
    
    class Data:
        data_count = 32
        frames_count = 2
    
        def __init__(self, value):
            self.value = value
            self.color = (0.5, random(), random()) #rgb
    
        # 造数据
        @classmethod
        def create(cls):
            return [[Data(randint(1, cls.data_count)) for _ in range(cls.data_count)]
                    for frame_i in range(cls.frames_count)]
    绘制动画:animation.FuncAnimation函数的回调函数的参数fi表示第几帧,注意要调用axs.cla()清除上一帧。
    
    def draw_chart():
        fig = plt.figure(1, figsize=(16, 9))
        axs = fig.add_subplot(111)
        axs.set_xticks([])
        axs.set_yticks([])
    
        # 生成数据
        frames = Data.create()
    
        def animate(fi):
            axs.cla()  # clear last frame
            axs.set_xticks([])
            axs.set_yticks([])
            return axs.bar(list(range(Data.data_count)),        # X
                           [d.value for d in frames[fi]],       # Y
                           1,                                   # width
                           color=[d.color for d in frames[fi]]  # color
                           )
        # 动画展示
        anim = animation.FuncAnimation(fig, animate, frames=len(frames))
        plt.show()
    
    
    draw_chart()
    
    22 pyecharts绘图属性设置方法
    这是pyecharts中一般的绘图步骤:
    
    from pyecharts.faker import Faker
    from pyecharts import options as opts
    from pyecharts.charts import Bar
    from pyecharts.commons.utils import JsCode
    
    def bar_base() -> Bar:
        c = (
            Bar()
            .add_xaxis(Faker.choose())
            .add_yaxis("商家A", Faker.values())
            .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))
        )
        return c
    
    bar_base().render('./bar.html')
    那么,如何设置y轴显示在右侧,添加一行代码:
    
    .set_global_opts(yaxis_opts=opts.AxisOpts(position='right'))
    也就是:
    
    c = (
            Bar()
            .add_xaxis(Faker.choose())
            .add_yaxis("商家A", Faker.values())
            .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))
            .set_global_opts(yaxis_opts=opts.AxisOpts(position='right'))
        )
    如何锁定这个属性,首先应该在set_global_opts函数的参数中找,它一共有以下11个设置参数,它们位于模块charts.py:
    
    title_opts: types.Title = opts.TitleOpts(),
    legend_opts: types.Legend = opts.LegendOpts(),
    tooltip_opts: types.Tooltip = None,
    toolbox_opts: types.Toolbox = None,
    brush_opts: types.Brush = None,
    xaxis_opts: types.Axis = None,
    yaxis_opts: types.Axis = None,
    visualmap_opts: types.VisualMap = None,
    datazoom_opts: types.DataZoom = None,
    graphic_opts: types.Graphic = None,
    axispointer_opts: types.AxisPointer = None,
    因为是设置y轴显示在右侧,自然想到设置参数yaxis_opts,因为其类型为types.Axis,所以再进入types.py,同时定位到Axis:
    
    Axis = Union[opts.AxisOpts, dict, None]
    Union是pyecharts中可容纳多个类型的并集列表,也就是Axis可能为opts.AxisOpt, dict, 或None三种类型。查看第一个opts.AxisOpt类,它共定义以下25个参数:
    
    type_: Optional[str] = None,
    name: Optional[str] = None,
    is_show: bool = True,
    is_scale: bool = False,
    is_inverse: bool = False,
    name_location: str = "end",
    name_gap: Numeric = 15,
    name_rotate: Optional[Numeric] = None,
    interval: Optional[Numeric] = None,
    grid_index: Numeric = 0,
    position: Optional[str] = None,
    offset: Numeric = 0,
    split_number: Numeric = 5,
    boundary_gap: Union[str, bool, None] = None,
    min_: Union[Numeric, str, None] = None,
    max_: Union[Numeric, str, None] = None,
    min_interval: Numeric = 0,
    max_interval: Optional[Numeric] = None,
    axisline_opts: Union[AxisLineOpts, dict, None] = None,
    axistick_opts: Union[AxisTickOpts, dict, None] = None,
    axislabel_opts: Union[LabelOpts, dict, None] = None,
    axispointer_opts: Union[AxisPointerOpts, dict, None] = None,
    name_textstyle_opts: Union[TextStyleOpts, dict, None] = None,
    splitarea_opts: Union[SplitAreaOpts, dict, None] = None,
    splitline_opts: Union[SplitLineOpts, dict] = SplitLineOpts(),
    观察后尝试参数position,结合官档:https://pyecharts.org/#/zh-cn/global_options?id=axisopts%ef%bc%9a%e5%9d%90%e6%a0%87%e8%bd%b4%e9%85%8d%e7%bd%ae%e9%a1%b9,介绍x轴设置position时有bottom, top, 所以y轴设置很可能就是left,right.
    
    
    
    23 pyecharts绘图属性设置方法(下)
    1)柱状图显示效果动画对应控制代码:
    
    animation_opts=opts.AnimationOpts(
                        animation_delay=500, animation_easing="cubicOut"
                    )
    2)柱状图显示主题对应控制代码:
    
    theme=ThemeType.MACARONS
    3)添加x轴对应的控制代码:
    
    add_xaxis( ["草莓", "芒果", "葡萄", "雪梨", "西瓜", "柠檬", "车厘子"]
    4)添加y轴对应的控制代码:
    
    add_yaxis("A", Faker.values(),
    5)修改柱间距对应的控制代码:
    
    category_gap="50%"
    6)A系列柱子是否显示对应的控制代码:
    
    is_selected=True
    7)A系列柱子颜色渐变对应的控制代码:
    
    itemstyle_opts={
                "normal": {
                    "color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                        offset: 0,
                        color: 'rgba(0, 244, 255, 1)'
                    }, {
                        offset: 1,
                        color: 'rgba(0, 77, 167, 1)'
                    }], false)"""),
                    "barBorderRadius": [6, 6, 6, 6],
                    "shadowColor": 'rgb(0, 160, 221)',
                }}
    8)A系列柱子最大和最小值标记点对应的控制代码:
    
    markpoint_opts=opts.MarkPointOpts(
                    data=[
                        opts.MarkPointItem(type_="max", name="最大值"),
                        opts.MarkPointItem(type_="min", name="最小值"),
                    ]
                )
    9)A系列柱子最大和最小值标记线对应的控制代码:
    
    markline_opts=opts.MarkLineOpts(
                    data=[
                        opts.MarkLineItem(type_="min", name="最小值"),
                        opts.MarkLineItem(type_="max", name="最大值")
                    ]
                )
    10)柱状图标题对应的控制代码:
    
    title_opts=opts.TitleOpts(title="Bar-参数使用例子"
    11)柱状图非常有用的toolbox显示对应的控制代码:
    
    toolbox_opts=opts.ToolboxOpts()
    12)Y轴显示在右侧对应的控制代码:
    
    yaxis_opts=opts.AxisOpts(position="right")
    13)Y轴名称对应的控制代码:
    
    yaxis_opts=opts.AxisOpts(,name="Y轴")
    14)数据轴区域放大缩小设置对应的控制代码:
    
    datazoom_opts=opts.DataZoomOpts()
    完整代码
    
    def bar_border_radius():
        c = (
            Bar(init_opts=opts.InitOpts(
                    animation_opts=opts.AnimationOpts(
                        animation_delay=500, animation_easing="cubicOut"
                    ),
                    theme=ThemeType.MACARONS))
            .add_xaxis( ["草莓", "芒果", "葡萄", "雪梨", "西瓜", "柠檬", "车厘子"])
            .add_yaxis("A", Faker.values(),category_gap="50%",markpoint_opts=opts.MarkPointOpts(),is_selected=True)
            .set_series_opts(itemstyle_opts={
                "normal": {
                    "color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                        offset: 0,
                        color: 'rgba(0, 244, 255, 1)'
                    }, {
                        offset: 1,
                        color: 'rgba(0, 77, 167, 1)'
                    }], false)"""),
                    "barBorderRadius": [6, 6, 6, 6],
                    "shadowColor": 'rgb(0, 160, 221)',
                }}, markpoint_opts=opts.MarkPointOpts(
                    data=[
                        opts.MarkPointItem(type_="max", name="最大值"),
                        opts.MarkPointItem(type_="min", name="最小值"),
                    ]
                ),markline_opts=opts.MarkLineOpts(
                    data=[
                        opts.MarkLineItem(type_="min", name="最小值"),
                        opts.MarkLineItem(type_="max", name="最大值")
                    ]
                ))
            .set_global_opts(title_opts=opts.TitleOpts(title="Bar-参数使用例子"), toolbox_opts=opts.ToolboxOpts(),yaxis_opts=opts.AxisOpts(position="right",name="Y轴"),datazoom_opts=opts.DataZoomOpts(),)
            
        )
    
        return c
    
    bar_border_radius().render()
    
    
    24 1 分钟学会画 pairplot 图
    使用 seaborn 绘制 sepal_length, petal_length 两个特征间的关系矩阵:
    from sklearn.datasets import load_iris
    import matplotlib.pyplot as plt
    import seaborn as sns
    from sklearn import tree
    
    sns.set(style="ticks")
    
    df02 = df.iloc[:,[0,2,4]] # 选择一对特征
    sns.pairplot(df02)
    plt.show()
    
    设置颜色多显:
    
    sns.pairplot(df02, hue="species")
    plt.show()
    
    绘制所有特征散点矩阵:
    
    sns.pairplot(df, hue="species")
    plt.show()
  • 相关阅读:
    【1801日語听解4】第14回:6月9日
    【日語听解2】第14回:6月8日
    【日語視聴説2】第14回:6月8日
    【日本語新聞編集】第13回:6月5日
    【1801日語写作】第13回:6月4日
    【日本語新聞選読】第13回:6月2日
    Win10版本
    家庭或小规模无线使用方
    批处理bat复制命令Copy与Xcopy
    批处理bat删除命令
  • 原文地址:https://www.cnblogs.com/miaoweiye/p/12615142.html
Copyright © 2011-2022 走看看