數據如何清晰、準確、交互的展示,經過數據可視化,將實現這些效果。html
python可視化須要用到的庫:pandas,matplotlibpython
參考官方教程:http://matplotlib.org/index.html函數
散點圖:字體
繪圖函數:plot(x,y,'.',color(r,g,b))spa
x、y,x軸和y軸的序列;‘.’,散點圖中點的大小;color:rgb定義code
# -*- coding: utf-8 -*- import pandas import matplotlib import matplotlib.pyplot as plt data = pandas.read_csv( 'C://Users//leon//Desktop//data.csv' ) mainColor = (52/256, 88/256, 151/256, 1) #1是透明度 font = { 'size': 20, 'family': 'SimHei' } #設置字體,若不設置則不會顯示中文字體 matplotlib.rc('font', **font) #%matplotlib qt #plt.grid(True) #小點 plt.xlabel('廣告費用', color=mainColor) plt.ylabel('購買用戶數', color=mainColor) plt.tick_params(axis='x', colors=mainColor) #刻度線設置 plt.tick_params(axis='y', colors=mainColor) plt.plot( data['廣告費用'], data['購買用戶數'], '.', color=mainColor )
如若運行環境是pycharm,則在最後添加:htm
plt.show()
纔可顯示圖形。
折線圖:blog
plot(x,y,style,color,linewidth)教程
title('圖的標圖')utf-8
style,線的樣式;linewidth線的寬度。
import pandas import matplotlib from matplotlib import pyplot as plt data = pandas.read_csv( 'C://Users//leon//Desktop//data.csv' ) #對日期格式進行轉換 data['購買日期'] = pandas.to_datetime( data['日期'] ) mainColor = (42/256, 87/256, 141/256, 1); font = { 'size': 20, 'family': 'SimHei' } matplotlib.rc('font', **font) #%matplotlib qt plt.xlabel( '購買日期', color=mainColor ) plt.ylabel( '購買用戶數', color=mainColor ) plt.tick_params( axis='x', colors=mainColor ) plt.tick_params( axis='y', colors=mainColor ) #'-' 順滑的曲線 plt.plot( data['購買日期'], data['購買用戶數'], '-', color=mainColor ) plt.title('購買用戶數') plt.show()
與散點圖相比,plt.plot(第三個參數設置爲‘-’,便可轉化爲則線圖。
餅圖:
pie(x,labels,colors,explode,autopct)
x 繪圖的序列;labels標籤序列;colors顏色;explode須要突出的序列;autopct餅圖佔比的下手格式;%.2f保留2位小數
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs' sizes = [15, 30, 45, 10] explode = (0, 0.1, 0, 0) # only "explode" the 2nd slice (i.e. 'Hogs') fig1, ax1 = plt.subplots() ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True, startangle=90) ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
#設置爲橫軸和縱軸等長的餅圖
#也就是圓形的餅圖,而非橢圓形的餅圖
plt.show()
柱形圖:
bar(left,height,width,color)
left x軸序列;height y軸數值 ;width 柱形圖的寬度;color 填充顏色
import numpy import pandas import matplotlib from matplotlib import pyplot as plt font = { 'family' : 'SimHei' } matplotlib.rc('font', **font) #建立中文環境 data = pandas.read_csv( 'C://Users//leon//Desktop//data.csv' ) result = data.groupby( by=['手機品牌'], as_index=False )['月消費(元)'].agg({ '月消費': numpy.sum }) #透視 #豎向柱形圖 mainColor = (42/256, 87/256, 141/256, 1) index = numpy.arange( result.月消費.size ) sgb = result.sort_values( by="月消費", ascending=False ) #降序,false改成true則爲升序 plt.bar( index, sgb.月消費, color=mainColor ) plt.xticks(index, sgb.手機品牌) #xticks函數爲加上中文標籤 plt.show()