python学习笔记——matplotlib模块

    xiaoxiao2022-07-13  168

    matplotlib数据可视化

           无论是大数据、还是小数据、也不管通过统计还是挖掘或机器学习,人们最终想看到的数据,越直观越好,所以这个就涉及到一个数据的可视化问题,而python或pandas的数据可视化功能很强大,可画的种类多,也非常便捷,这是一般数据库软件和开发工具目前所欠缺的。以下我们通过两个实例来说明利用python的matplotlib或pandas实现数据的可视化。

    参考博客:https://www.cnblogs.com/kuaizifeng/p/9067795.html

    1、模拟随机游走

    # -*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np import pandas as pd import numpy.random as np_random import pylab print('模拟随机游走') nsteps = 1000 draws = np.random.randint(0, 2, size=nsteps) #随机从0-2(不含)生成整数,size为个数 steps = np.where(draws > 0, 1, -1) #draws>0时,输出1,否则输出-1 walk=steps.cumsum() # 画图 plt.title('Random Walk') limit = max(abs(min(walk)), abs(max(walk))) #abs取绝对值 plt.axis([0, 1000, -limit, limit]) x = np.linspace(0, 1000, 1000) plt.plot(x, walk, 'g-') plt.show()

    numpy.random.randint 

    low、high、size三个参数。默认high是None,如果只有low,那范围就是[0,low)。如果有high,范围就是[low,high)。

    np.where(condition, x, y)

    满足条件(condition),输出x,不满足输出y

     

     

     

    2、三角函数图像

    # -*- coding: utf-8 -*- import numpy as np import matplotlib import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] ###显示中文 plt.rcParams['axes.unicode_minus']=False ##防止坐标轴上的-号变为方块 x = np.linspace(0, 10, 100) y = np.sin(x) y1 = np.cos(x) ##绘制一个图,长为10,宽为6(默认值是每个单位80像素) plt.figure(figsize=(10,6)) ###在图列中自动显示$间内容 plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2) plt.plot(x,y1,"b--",label="$cos(x^2)$") ###b(blue),--线形 plt.xlabel(u"X值") ##X坐标名称,u表示unicode编码 plt.ylabel(u"Y值") plt.title(u"三角函数图像") ##t图名称 plt.ylim(-1.2,1.2) ##y上的max、min值 plt.legend() ##显示图例 plt.savefig('fig01.png') ##保持到当前目录 plt.show()

     

    3、污染指数柱状图

    PYECHARTS可视化 from pyecharts import Bar import pandas as pd comp_df = pd.read_csv('data/comparison_result.csv', index_col='state') comp_df good_state_results = comp_df.iloc[0, :].values heavy_state_results = comp_df.iloc[1, :].values light_state_results = comp_df.iloc[2, :].values medium_state_results = comp_df.iloc[3, :].values labels = comp_df.index.values.tolist() city_names = comp_df.columns.tolist() bar = Bar("江涛--堆叠柱形图") bar.add('良好', city_names, good_state_results, is_stack=True, xaxis_interval=0, xaxis_rotate=30) bar.add('轻度污染', city_names, light_state_results, is_stack=True, xaxis_interval=0, xaxis_rotate=30) bar.add('中度污染', city_names, medium_state_results, is_stack=True, xaxis_interval=0, xaxis_rotate=30) bar.add('重度污染', city_names, heavy_state_results, is_stack=True, xaxis_interval=0, xaxis_rotate=30) bar # 保存结果到html bar.render('echarts_demo.html')

     

     

     

    4、幸福指数国家堆叠柱状图

     

    from pyecharts import Bar import pandas as pd df= pd.read_csv('data/2015.csv') from pyecharts import Bar import pandas as pd df= pd.read_csv('data/2015.csv') df2= df1[['Country','Happiness Score','Economy (GDP per Capita)','Family']] df3 = df2[df2['Country'].str.contains('Austria|Mexico|Israel|New Zealand')] Happiness_res = df3['Happiness Score'].values Economy_res = df3['Economy (GDP per Capita)'].values Family_res = df3['Family'].values city_names = df3['Country'].tolist() #添加横坐标名称 bar1=Bar('堆叠柱状图') bar1.add('幸福分数', city_names, Happiness_res, is_stack=True, xaxis_interval=0, xaxis_rotate=30) bar1.add('生产总值', city_names, Economy_res, is_stack=True, xaxis_interval=0, xaxis_rotate=30) bar1.add('家庭', city_names, Family_res, is_stack=True, xaxis_interval=0, xaxis_rotate=30) bar1 bar1.render('new_echarts_happy.html')

     

    最新回复(0)