添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
光明磊落的烤面包  ·  USAJOBS - Search·  1 周前    · 
踏实的匕首  ·  ipq5018刷openwrt - CSDN文库·  1 月前    · 
文雅的开心果  ·  JEXL – Apache Commons ...·  4 月前    · 
plt.rcParams[ 'font.sans-serif' ]=[ 'SimHei' ] #正常显示中文 plt.rcParams[ 'axes.unicode_minus' ] = False #正常显示负号 # 使用matplotlib模块绘制 # pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False) # x:指定绘图的数据。 # explode:指定饼图某些部分的突出显示,即呈现爆炸式。 # labels:为饼图添加标签说明,类似于图例说明。 # colors:指定饼图的填充色。 # autopct:自动添加百分比显示,可以采用格式化的方法显示。 # pctdistance:设置百分比标签与圆心的距离。 # shadow:是否添加饼图的阴影效果。 # labeldistance:设置各扇形标签(图例)与圆心的距离。 # startangle:设置饼图的初始摆放角度。 # radius:设置饼图的半径大小。 # counterclock:是否让饼图按逆时针顺序呈现。 # wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等。 # textprops:设置饼图中文本的属性,如字体大小、颜色等。 # center:指定饼图的中心点位置,默认为原点。 # frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴 的范围和饼图的中心位置。 # 最简单的例子 data1 = [ 0.2515 , 0.3724 , 0.3336 , 0.0368 , 0.0057 ] labels = [ '中专' , '大专' , '本科' , '硕士' , '其他' ] plt.pie(x=data1,labels=labels,autopct= '%.1f%%' ) plt.show() # 加强版例子 data1 = [ 0.2515 , 0.3724 , 0.3336 , 0.0368 , 0.0057 ] labels = [ '中专' , '大专' , '本科' , '硕士' , '其他' ] explode = [ 0 , 0.1 , 0 , 0 , 0 ] # 凸显大专人群 plt.axes(aspect= 'equal' ) # 将横纵坐标标准化处理,使得饼图是正圆不是椭圆 plt.pie( x=data1, explode=explode, labels=labels, autopct= '%.1f%%' , pctdistance= 0.8 , # 设置百分比数据与圆心的距离 labeldistance= 1.1 , # 设置标签和圆心距离 textprops = { 'fontsize' : 10 , "color" : "black" } plt.title( "失信用户的受教育水平分布" ) plt.show() # 使用pandas模块绘制 # Series.plot(kind='line', ax=None, figsize=None, use_index=True, title=None, grid=None, legend=False, style=None, logx=False, logy=False, loglog=False, xticks=None, yticks=None, xlim=None, ylim=None, rot=None, fontsize=None, colormap=None, table=False, yerr=None, xerr=None, label=None, secondary_y=False, **kwds) # plot函数可以绘制折线图,饼图,直方图,条形图,核密度图,箱线图等 # kind:指定一个字符串值,用于绘制图形的类型,默认为折线图line。还可以绘制垂直条 形图bar、水平条形图hbar、直方图hist、箱线图box、核密度图kde、面积图area和饼图pie。 ax:控制当前子图在组图中的位置。例如,在一个2×2的图形矩阵中,通过该参数控制当 前图形在矩阵中的位置。 figsize:控制图形的宽度和高度,以元组形式传递,即(width,hright)。 use_index:bool类型的参数,是否将序列的行索引用作x轴的刻度,默认为True。 title:用以添加图形的标题。 grid:bool类型的参数,是否给图形添加网格线,默认为False。 legend:bool类型的参数,是否添加子图的图例,默认为False。 style:如果kind为line,该参数可以控制折线图的线条类型。 logx:bool类型的参数,是否对x轴做对数变换,默认为False。 logy:bool类型的参数,是否对y轴做对数变换,默认为False。 # loglog:bool类型的参数,是否同时对x轴和y轴做对数变换,默认为False。 xticks:用于设置x轴的刻度值。 yticks:用于设置y轴的刻度值。 xlim:以元组或列表的形式,设置x轴的取值范围,如(0,3)表示x轴落在0~3的范围之内。 ylim:以元组或列表的形式,设置y轴的取值范围。 rot:接受一个整数值,用于旋转刻度值的角度。 fontsize:接受一个整数,用于控制x轴与y轴刻度值的字体大小。 colormap:接受一个表示颜色含义的字符串,或者Python的色彩映射对象,该参数用于 设置图形的区域颜色。 table:该参数如果为True,表示在绘制图形的基础上再添加数据表;如果传递的是序列 或数据框,则根据数据添加数据表。 yerr:如果kind为bar或hbar,该参数表示在条形图的基础上添加误差棒。 xerr:含义同yerr参数。 label:用于添加图形的标签。 secondary_y:bool类型的参数,是否添加第二个y轴,默认为False。 **kwds:关键字参数,该参数可以根据不同的kind值,为图形添加更多的修饰性参数(依 赖于pyplot中的绘图函数)。 data1 = [ 0.2515 , 0.3724 , 0.3336 , 0.0368 , 0.0057 ] labels = [ '中专' , '大专' , '本科' , '硕士' , '其他' ] data2 = {l:d for d,l in zip(data1,labels)} print(data2) data2 = pd.Series(data2) data2.name = '' # 将序列名称改为空字符,否则饼图左边会出现None的字眼 plt.axes(aspect= 'equal' ) data2.plot( kind= 'pie' , autopct= "%.1f%%" , title= "失信用户的受教育水平分布" , explode=[ 0 , 0.1 , 0 , 0 , 0 ], textprops = { 'fontsize' : 10 , 'color' : "black" } plt.show() # 会发现,使用pd绘制饼图和使用matplotlib绘制饼图的参数绝大部分一样,这是因为pandas的绘图函数内部其实还是使用了matplotlib模块来绘制的 # 所以使用pandas绘图时,查找参数可以直接查matplotlib的参数 # seaborn没有绘制饼图的函数



饼图绘制结果


2. 绘制折线图

# coding=utf-8
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib as mpl
from datetime import datetime
plt.rcParams['font.sans-serif']=['SimHei']  #正常显示中文
plt.rcParams['axes.unicode_minus'] = False  #正常显示负号
# plt.plot(x, y, linestyle, linewidth, color, marker, markersize, markeredgecolor, markerfactcolor, markeredgewidth, label, alpha)
# x:指定折线图的x轴数据。y:指定折线图的y轴数据。 linestyle:指定折线的类型,可以是实线、虚线、点虚线、点点线等,默认为实线。 linewidth:指定折线的宽度。 marker:可以为折线图添加点,该参数是设置点的形状。 markersize:设置点的大小。 markeredgecolor:设置点的边框色。 markerfactcolor:设置点的填充色。 markeredgewidth:设置点的边框宽度。 label:为折线图添加标签,类似于图例的作用。
data1 = pd.read_csv("./wechat.csv")
print(data1.head())
plt.plot(data1.Date,data1['Counts'],linewidth=2,marker="o")
# plt.xlabel("日期")    # 这里由于xlabel的标签长度太长,所以不调用xlabel,他就会自动抽取部分xlabel显示,而不是显示所有的xlabel
plt.ylabel("人数")
plt.title("每日微信文章阅读人数趋势")
plt.show()   #折线图1
# 改进 将阅读人数和阅读人次同时显示在途中,并且对于x轴的刻度标签,是否可以只保留月份和日期,并且以7天作为间隔
# 首先要将日期从字符串转为date格式,否则后面mpl.dates.DateFormatter("%m/%d")会报错的
dates = [datetime.strptime(d,"%Y/%m/%d").date() for d in data1.Date]    #strptime() 函数根据指定的格式把一个时间字符串解析为时间元组。
plt.plot(dates,data1.Counts,linestyle="-",color="steelblue",label="阅读人数")
plt.plot(dates,data1.Times,linestyle="--",color="indianred",label="阅读人次")
ax=plt.gca()    #获取图的坐标信息
date_format = mpl.dates.DateFormatter("%m/%d")
ax.xaxis.set_major_formatter(date_format)   #设置x轴的日期格式
# xlocator=mpl.ticker.LinearLocator(10)   #设置x轴显示几个时间刻度
xlocator = mpl.ticker.MultipleLocator(7)    # 设置每个刻度的间隔天数
ax.xaxis.set_major_locator(xlocator)
plt.xticks(rotation=45)
plt.ylabel("人数")
plt.title("每日微信文章阅读人数和人次趋势")
plt.legend()
plt.show()    #折线图2
# 使用pandas绘制
data2=pd.read_csv("./weather.csv")
data3 = data2.pivot_table(index="month",columns="year",values="high")
print(data3)
data3.plot(kind="line",style=['-',"--","-."])
plt.xlabel("月份")
plt.ylabel("最高气温")
plt.title("每月平均气温趋势")
plt.show()    #折线图3


折线图1



折线图2



折线图3





更多内容请关注微信公众号
zbpblog微信公众号