• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    用python 绘制茎叶图和复合饼图

    茎叶图

    from itertools import groupby
    nums2=[225, 232,232,245,235,245,270,225,240,240,217,195,225,185,200,
        220,200,210,271,240,220,230,215,252,225,220,206,185,227,236]
    for k, g in groupby(sorted(nums2), key=lambda x: int(x) // 10):
      print (k, list(g))
      # print('k', k)
      # print('g', list(g))
      lst = map(str, [int(y) % 10 for y in list(g)])
      print (k, '|', ' '.join(lst))

    输出:

    18 | 5 5
    19 | 5
    20 | 0 0 6
    21 | 0 5 7
    22 | 0 0 0 5 5 5 5 7
    23 | 0 2 2 5 6
    24 | 0 0 0 5 5
    25 | 2
    27 | 0 1

    说明:

    1./ 就表示 浮点数除法,返回浮点结果; // 表示整数除法。

    2.itertools.groupby 按照分组函数的值对元素进行分组。

    >>> from itertools import groupby
    >>> x = groupby(range(10), lambda x: x  5 or x > 8)
    >>> for condition, numbers in x:
    	print(condition, list(numbers))
    输出:
    True [0, 1, 2, 3, 4]
    False [5, 6, 7, 8]
    True [9]
    
    >>> [k for k, g in groupby('AAAABBBCCDAABBB')]
    ['A', 'B', 'C', 'D', 'A', 'B']
    >>> [list(g) for k, g in groupby('AAAABBBCCD')]
    [['A', 'A', 'A', 'A'], ['B', 'B', 'B'], ['C', 'C'], ['D']]

    3.map(function, iterable, ...) 根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
    4.循环加处理的例子

    >>> [int(y) % 10 for y in [22,73,34,92,45]]
    [2, 3, 4, 2, 5]

    复合饼图

    import numpy as np
    import matplotlib as mpl
    from matplotlib import cm
    import matplotlib.pyplot as plt
    from matplotlib.patches import ConnectionPatch
    
    # 使图表元素中正常显示中文
    mpl.rcParams['font.sans-serif'] = 'SimHei'
    # 使坐标轴刻度标签正常显示负号
    mpl.rcParams['axes.unicode_minus'] = False
    
    #制画布
    fig = plt.figure(figsize=(9,5.0625), facecolor='cornsilk')
    ax1 = fig.add_subplot(121)
    ax2 = fig.add_subplot(122)
    
    # 调整子区布局
    fig.subplots_adjust(wspace=0)
    
    # 大饼图的制作
    labels = ['成都','武汉','昆明','贵阳','西安','其它']
    size = [802,530,477,256,233,307]
    # 分裂距离
    explode=(0,0,0,0,0,0.1)
    ax1.pie(size,        # 数据
        autopct='%1.1f%%',  # 锲形块的数据标签格式
        startangle=30,    # 锲形块开始角度
        labels=labels,
        colors=cm.Blues(range(10, 300, 50)),
        explode=explode)
    
    #小饼图的制作
    labels2 = ['西宁','拉萨','乌鲁木齐','兰州']
    size2 = [102,79, 76, 50]
    width=0.2
    ax2.pie(size2,
        autopct='%1.1f%%',
        startangle=90,
        labels=labels2,
        colors=cm.Blues(range(10, 300, 50)),
        radius=0.5,
        shadow=False)
    
    #使用ConnectionPatch画出两个饼图的间连线
    #先得到饼图边缘的数据
    theta1, theta2 = ax1.patches[-1].theta1, ax1.patches[-1].theta2
    center, r   = ax1.patches[-1].center, ax1.patches[-1].r
    #画出上边缘的连线
    x = r*np.cos(np.pi/180*theta2)+center[0]
    y = np.sin(np.pi/180*theta2)+center[1]
    con1 = ConnectionPatch(xyA=(0, 0.5),
                xyB=(x,y),
                coordsA=ax2.transData,
                coordsB=ax1.transData,
                axesA=ax2,axesB=ax1)
    print(-width/2, 0.5)
    print(x,y)
    
    #画出下边缘的连线
    x = r*np.cos(np.pi/180*theta1) + center[0]
    y = np.sin(np.pi/180*theta1) + center[1]
    con2 = ConnectionPatch(xyA=(-0.1, -0.49),
                xyB=(x,y),
                coordsA='data',
                coordsB='data',
                axesA=ax2,axesB=ax1)
    
    # 添加连接线
    for con in [con1, con2]:
      con.set_color('gray')
      ax2.add_artist(con)
      con.set_linewidth(1)
    
    plt.show()

    输出:

    以上就是用python 绘制茎叶图和复合饼图的详细内容,更多关于python 绘制茎叶图和复合饼图的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • 看看如何用Python绘制小米新版天价logo
    • Python绘制分类图的方法
    • 用Python的绘图库(matplotlib)绘制小波能量谱
    • python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
    • python 绘制斜率图进行对比分析
    • 通过python读取txt文件和绘制柱形图的实现代码
    • python爬取股票最新数据并用excel绘制树状图的示例
    • python绘制汉诺塔
    • 教你怎么用python绘制dotplot
    上一篇:python lambda的使用详解
    下一篇:python利用xpath爬取网上数据并存储到django模型中
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    用python 绘制茎叶图和复合饼图 用,python,绘制,茎叶,图,和,