zoukankan      html  css  js  c++  java
  • python plotly 画饼状图

    代码

    import pandas as pd
    import numpy as np
    import plotly.plotly as py
    import plotly.graph_objs as go
    
    path = '/home/v-gazh/PycharmProjects/us_data/limit_code.csv'
    
    df = pd.read_csv(path)
    df.set_index(['code'], inplace=True)
    
    # ST 占比
    total_count = len(df)
    st_count = len(df[df['isST']==1])
    print(f'禁投池总数:{total_count}')
    print(f'禁投池中ST个数:{st_count}')  # f'禁投池中ST个数:{}'
    
    # 成分股占比
    sz50_count = len(df[df['isSz50']==1])
    print(f'禁投池中上证50个数:{sz50_count}')
    hs300_count = len(df[df['isHs300']==1])
    print(f'禁投池中沪深300个数:{hs300_count}')
    zz500_count = len(df[df['isZz500']==1])
    print(f'禁投池中中证500个数:{zz500_count}')
    
    # 退市占比
    outdate_count = len(df['outDate'].dropna())
    print(f'禁投池中退市股票个数:{outdate_count}')
    
    # 非股票
    not_stock = len(df[df['type']!=1])
    print(f'禁投池中非股票个数:{not_stock} 【SZ006415 为基金:F006415 | SZ000000 代码错误】')
    
    # 次新股
    delta_df = pd.DataFrame((pd.to_datetime(df['date']) - pd.to_datetime(df['ipoDate'])))
    new_stock = len(delta_df[delta_df[0] < pd.Timedelta('365 days')])  # 上市不满一年为次新股 
    print(f'禁投池中次新股个数:{new_stock}')
    
    # 市值小于30亿的股票
    maketValue = len(df[df['maketValue'] < 3000000000])
    print(f'市值小于30亿股票个数:{maketValue}')
    
    
    
    # 画图
    labels = ['股票总数', 'ST股票', '深证50', '沪深300', '中证500', '退市股票', '非股票', '次新股', '小市值']
    values = [total_count, st_count, sz50_count, hs300_count, zz500_count, outdate_count, not_stock, new_stock, maketValue]
    
    trace = go.Pie(labels=labels, values=values,textfont=dict(size=15),)
    py.iplot([trace], filename='basic_pie_chart')


    注:上面代码中,起主要作用的主要是

    # 画图
    labels = ['股票总数', 'ST股票', '深证50', '沪深300', '中证500', '退市股票', '非股票', '次新股', '小市值']
    values = [total_count, st_count, sz50_count, hs300_count, zz500_count, outdate_count, not_stock, new_stock, maketValue]
    
    trace = go.Pie(labels=labels, values=values,textfont=dict(size=15),)
    py.iplot([trace], filename='basic_pie_chart')
    values = [total_count, st_count, sz50_count, hs300_count, zz500_count, outdate_count, not_stock, new_stock, maketValue]

    values 列表里的内容为int数值,对应上面的labels

    图示

  • 相关阅读:
    Python Django 零基础破门而入篇(五)
    Python Django 零基础破门而入篇(四)
    Python Django 零基础破门而入篇(三)
    Python Django 零基础破门而入篇(二)
    Python Django 零基础破门而入篇(一)
    ACM/ICPC 之 计算几何入门-叉积-to left test(POJ2318-POJ2398)
    ACM/ICPC 之 机器调度-匈牙利算法解最小点覆盖集(DFS)(POJ1325)
    ACM/ICPC 之 卡卡的矩阵旅行-最小费用最大流(可做模板)(POJ3422)
    ACM/ICPC 之 伞兵-最小割转最大流(POJ3308)
    ACM/ICPC 之 最小割转网络流(POJ3469)
  • 原文地址:https://www.cnblogs.com/bigtreei/p/12048151.html
Copyright © 2011-2022 走看看