Python数据分析之初识可视化( 三 )


Python数据分析之初识可视化

文章插图
 
七. 绘制散点图
```python'''题干3月份每天最高气温a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]'''from matplotlib import pyplot as pltfrom matplotlib import font_managerimport numpy as npy = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]x = range(1,32)# 设置图形大小plt.figure(figsize=(20,8),dpi=80)# 使用scatter绘制散点图size = np.random.randint(0, 100, 31)# 设置大小plt.scatter(x,y,label= '3月份',alpha=0.5,s=size,c='red')# 调整x轴的刻度my_font = font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc',size=10)_xticks_labels = ['3月{}日'.format(i) for i in x]plt.xticks(x[::3],_xticks_labels[::3],fontproperties=my_font,rotation=45)_yticks_labels = ['{}°C'.format(i) for i in range(min(y),max(y)+1)]plt.yticks(range(min(y),max(y)+1),_yticks_labels)plt.xlabel('日期',fontproperties=my_font)plt.ylabel('温度',fontproperties=my_font)# 图例plt.legend(prop=my_font)plt.show()```
Python数据分析之初识可视化

文章插图
 
八. 绘制条形图
```python'''假设你获取到了2019年内地电影票房前20的电影(列表a)和电影票房数据(列表b),请展示该数据a = ['流浪地球','疯狂的外星人','飞驰人生','大黄蜂','熊出没·原始时代','新喜剧之王']b = ['38.13','19.85','14.89','11.36','6.47','5.93']'''from matplotlib import pyplot as pltfrom matplotlib import font_managera = ['流浪地球','疯狂的外星人','飞驰人生','大黄蜂','熊出没·原始时代','新喜剧之王']b = ['38.13','19.85','14.89','11.36','6.47','5.93']# b =[38.13,19.85,14.89,11.36,6.47,5.93]my_font = font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc',size=10)plt.figure(figsize=(20,8),dpi=80)# 绘制条形图rects = plt.bar(a,[float(i) for i in b],width=0.3,color=['r','g','b','r','g','b'])plt.xticks(range(len(a)),a,fontproperties=my_font)plt.yticks(range(0,41,5),range(0,41,5))# 在条形图上加标注(水平居中)for rect in rects:height = rect.get_height()plt.text(rect.get_x() + rect.get_width() / 2, height+0.3, str(height),ha="center")plt.show()```
Python数据分析之初识可视化

文章插图
 
**横向条形图**
```python# 横向柱状图from matplotlib import pyplot as pltfrom matplotlib import font_managermy_font = font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc',size=10)a = ['流浪地球','疯狂的外星人','飞驰人生','大黄蜂','熊出没·原始时代','新喜剧之王']b = [38.13,19.85,14.89,11.36,6.47,5.93]plt.figure(figsize=(20,8),dpi=80)# 绘制条形图的方法'''height=0.3条形的宽度'''# 绘制横向的条形图# plt.bar(y,x,width = 0.4)rects = plt.barh(range(len(a)),b,height=0.5,color='r')plt.yticks(range(len(a)),a,fontproperties=my_font,rotation=45)# 在条形图上加标注(水平居中)for rect in rects: # print(rect.get_x()) width = rect.get_width() plt.text(width, rect.get_y()+0.5/2, str(width),va="center")plt.show()```
Python数据分析之初识可视化

文章插图
 
**并列和罗列条形图**
```pythonimport matplotlib.pyplot as pltimport numpy as npindex = np.arange(4)BJ = [50,55,53,60]Sh = [44,66,55,41]# 并列plt.bar(index,BJ,width=0.3)plt.bar(index+0.3,Sh,width=0.3,color='green')plt.xticks(index+0.3/2,index)# 罗列# plt.bar(index,Sh,bottom=BJ,width=0.3,color='green')plt.show()```
Python数据分析之初识可视化

文章插图
 

Python数据分析之初识可视化

文章插图
 
九. 饼状图
```pythonimport matplotlib.pyplot as pltimport matplotlibfrom matplotlib import font_managermy_font = font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc',size=10)label_list = ["第一部分", "第二部分", "第三部分"]# 各部分标签size = [55, 35, 10]# 各部分大小color = ["red", "green", "blue"]# 各部分颜色explode = [0, 0.05, 0]# 各部分突出值"""绘制饼图x : (每一块)的比例,如果sum(x)>1,会将多出的部分进行均分;explode: (每一块)离开中心距离labels: (每一块)饼图外侧显示的说明文字;labeldistance:设置标签文本距圆心位置,1.1表示1.1倍半径autopct:控制饼图内百分比设置shadow:设置是否有阴影startangle:起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起;pctdistance:类似于labeldistance,指定autopct的位置刻度,默认值为0.6;返回值:patches : matplotlib.patches.Wedge列表(扇形实例)l_text:label matplotlib.text.Text列表(标签实例)p_text:label matplotlib.text.Text列表(百分比标签实例)"""plt.figure(figsize=(20, 8), dpi=100)patches, l_text, p_text = plt.pie(size,explode=explode,colors=color,labels=label_list,labeldistance=1.1,autopct="%1.1f%%",shadow=False,startangle=90,pctdistance=0.6)for t in l_text:print(dir(t))t.set_fontproperties(my_font)for t in p_text:t.set_size(18)for i in patches:i.set_color('pink')breakplt.show()```


推荐阅读