一.柱状图
1.plt.bar(x,height,width,color)
- x:记录x轴上的标签
- height:记录每个柱形的高度
- width:设置柱形的宽度
- color:设置柱形的颜色,传入颜色值的列表,例如:['blue','green','red']
2.使用plt.text( )函数把柱形的高度数据标注在了柱形的上方: plt.text(x,y,s,ha,va)
函数中前两个参数分别为标注数据的坐标,x和y坐标,参数s记录标注的内容,参数ha和va分别用于设置水平和垂直方向的对齐方式。
- plt.text(rect.get_x() + rect.get_width() / 2, height+0.3, str(height),ha="center")
二.直方图
1.plt.hist(data, bins, facecolor, edgecolor)
- data:绘图用到的数据
- height:直方图的条形数目
- bins:设置柱形的宽度
- facecolor:矩形的填充颜色
- edgecolor:条形的边框颜色
例如:
- from matplotlib import pyplot as plt
- from matplotlib import font_manager
- time = [131, 116, 111, 84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]
- my_font = font_manager.FontProperties(fname='/data/course_data/data_analysis/STSONG.TTF',size=10)
- # 2)创建画布
- plt.figure(figsize=(20, 8), dpi=100)
- # 3)绘制直方图
- # 设置组距
- distance = 2
- # 计算组数
- group_num = int((max(time) - min(time)) / distance)
- # 绘制直方图
- plt.hist(time, bins=group_num)
- # 修改x轴刻度显示
- plt.xticks(range(min(time), max(time))[::2])
- # 添加网格显示
- plt.grid(linestyle="--", alpha=0.5)
- # 添加x, y轴描述信息
- plt.xlabel("电影时长大小",fontproperties=my_font)
- plt.ylabel("电影的数据量",fontproperties=my_font)
三.散点图
1.plt.scatter(x,y,s,c,marker,alpha,linewidths)
- x,y:数组
- s:散点图中点的大小,可选
- c:散点图中点的颜色,可选
- marker:散点图的形状,可选
- alpha:表示透明度,在 0~1 取值,可选
- linewidths:表示线条粗细,可选
例如:
- import pandas as pd
- from matplotlib import pyplot as plt
- df = pd.read_csv('/data/course_data/data_analysis/height_weight.csv')
- # 设置图形大小
- plt.figure(figsize=(20,8),dpi=80)
- # 使用scatter绘制散点图
- plt.scatter(df['height'],df['weight'],alpha=0.5,c='red')
- plt.show()
四.饼图
1.plt.pie(x, labels, autopct, shadow, startangle)
- x:绘制用到的数据
- Tlabels:用于设置饼图中每一个扇形外侧的显示说明文字
- autopct:设置饼图内百分比数据,可以使用format字符串或者format function,例如’%.1f%%’指小数点后保留1位小数
- shadow:表示是否在饼图下面画阴影,默认值:False,即不画阴影
- Tstartangle:设置起始绘制角度,默认图是从x轴正方向逆时针画起,如果设定startangle=90,则从y轴正方向画起
例如:
- import pandas as pd
- from matplotlib import pyplot as plt
- from matplotlib import font_manager
- my_font = font_manager.FontProperties(fname='/data/course_data/data_analysis/STSONG.TTF',size=10)
- df = pd.read_excel('/data/course_data/data_analysis/lagou.xlsx')
- plt.figure(figsize = (10,8))
- num = df.groupby('学历').size()
- # 绘制饼图
- patches, l_text, p_text = plt.pie(num,labels = num.index, autopct='%.1f%%',shadow=False,startangle=90)
- for t in l_text:
- t.set_fontproperties(my_font)
- plt.show()
plt.pie()会有三个返回值
- patches: matplotlib.patches.Wedge列表(扇形实例)
- l_text:label matplotlib.text.Text列表(标签实例)
- p_text:label matplotlib.text.Text列表(百分比标签实例)
所以,在每一个扇形外侧显示中文的时候,需要获取到每一个标签实例,然后通过set_fontproperties()方法设置自定义字体。
五.总结