数据可视化,流程化处理pycharts-

本文直接进入可视化,输入讲解输入列表生成图片,关于pandas操作看这篇pandas

matplotlib

导包后使用

import matplotlib.pyplot as plt

饼图

使用 plt.figure 函数设置图片的大小为 15x15
使用 plt.pie 函数绘制饼图,并设置相关的参数:
values:饼图中各个扇形所代表的数值。
radius:饼图的半径。
labels:是否在扇形上显示数据标签。设置为 None 表示不显示。
autopct:扇形上显示数据百分比的格式。
textprops:设置字体大小。
colors:饼图中各个扇形的颜色。
使用 plt.pie 再次绘制一个空心圆环图,以遮盖饼图中心的部分,使饼图看起来更美观。
使用 plt.title 函数为图片添加标题,并设置字体大小。
使用 plt.legend 函数为饼图添加图例。参数解释如下:
title:图例的标题。
bbox_to_anchor:调整图例在图片中的位置。第一个数字表示图例距离左边的距离,第二个数字表示图例距离下面的距离。
labels:图例中各个元素所代名字

def draw_pie_chart_with_legend(name, values):
	matplotlib.rcParams['font.family'] = 'SimHei' # 显示中文
	plt.rcParams['axes.unicode_minus'] = False  #负号乱码
    # 绘制饼图
    plt.figure(figsize=(15,15))
    #颜色组成设置,也可以用默认的,把pie的colors删了就可以了
    colors = ['#E6A0C4', '#C6CDF7', '#D8A499', '#7294D4', '#C6C6BC', '#869E82']
    #显示饼图的数据labels=None,不显示label,数据量过大不易展示,textprops字体大小,autopct保留几位小数
    plt.pie(values,radius=1, labels=None,autopct='%1.1f%%',textprops={'fontsize': 50},colors=colors)
    plt.pie([1,0,0,0],radius=0.4,colors='w')
    plt.title('示范',fontsize=60)
   # 绘制空心圆环图
    # 为饼图添加图例
    plt.rcParams.update({'font.size': 50})#图例大小
    ##bbox_to_anchor调节位置第一个代表距离左边距离,第二个代表距离下面距离
    plt.legend(title='例子', bbox_to_anchor=(0.1, 0.8),labels=name)
    plt.show()
    
#示范
draw_pie_chart_with_legend([1,2,3],[1,2,3])

显示结果
数据可视化,流程化处理pycharts-_第1张图片

柱状图

def draw_bar(name, values):
    # 设置图片的尺寸
    plt.figure(figsize=(40,30))
    colors = ['#E6A0C4', '#C6CDF7', '#D8A499', '#7294D4', '#C6C6BC', '#869E82']
    # 绘制柱状图
    bars= plt.bar(name,values,color=colors)
    # 设置坐标轴的刻度标签斜着显示
    plt.xticks(rotation=45)
    plt.title('示范')
    for bar in bars:
        height = bar.get_height()
        plt.text(bar.get_x() + bar.get_width() / 2, height / 2, f'{height}', ha='center',fontsize=50)

    plt.show()
draw_bar([1,2,3],[1,2,3])
#全表相关性分析
import seaborn as sns
def heatmap(data, method='pearson', camp='RdYlGn', figsize=(10 ,8)):
    """
    data: 整份数据
    method:默认为 pearson 系数
    camp:默认为:RdYlGn-红黄蓝;YlGnBu-黄绿蓝;Blues/Greens 也是不错的选择
    figsize: 默认为 10,8
    """
    plt.figure(figsize=figsize, dpi= 80)
    sns.heatmap(data.corr(method=method), \
                xticklabels=data.corr(method=method).columns, \
                yticklabels=data.corr(method=method).columns, cmap=camp, \
                center=0, annot=True)
    # 要想实现只是留下对角线一半的效果,括号内的参数可以加上 mask=mask

heatmap(data=dfM, figsize=(15,10))

折线图

def plot_line(x, y, title='资金对应日期变化', xlabel='日期', ylabel='总额'):
    import matplotlib
    import matplotlib.pyplot as plt
    plt.figure(figsize=(15,15))
    matplotlib.rcParams['font.family'] = 'SimHei' # 显示中文
    plt.plot(x, y)
    plt.title(title)
    # 设置显示的日期刻度
    plt.xticks(x[::50], x[::50], rotation=45)
    plt.xlabel(xlabel)
    plt.ylabel(ylabel)
    plt.show()
plot_line(day, c)

你可能感兴趣的:(信息可视化,python,matplotlib)