300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Python数据可视化:线型 Marker 简单折线图 多柱状图 基本饼形图与嵌套饼形图

Python数据可视化:线型 Marker 简单折线图 多柱状图 基本饼形图与嵌套饼形图

时间:2020-11-06 07:14:08

相关推荐

Python数据可视化:线型 Marker 简单折线图 多柱状图 基本饼形图与嵌套饼形图

Python数据可视化

一:Matplotlib

import matplotlib.pyplot as pltimport numpy as np# plt,np取别名

matplotlib常用命令:

plt.figure(facecolor='颜色', figsize=(a,b))定义画布颜色和尺寸图表标题和图例

plt.title()

plt.xlabel()

plt.ylabel()

fontsize()# 字体大小

plt.legend()

x,y轴刻度

plt.xticks()

plt.yticks()

plt.tick_params(bottom,left,right,top)# 坐标轴刻度显示

plt.rcParams["ytick.direction"]="in"坐标轴短线在里面显示

图表中的网格线,颜色,线的类型

plt.grid(c="grey",linestyle"--")

legend()图例位置调整

matplotlib.pyplot.legend(loc='String' or Number, bbox_to_anchor=(num1, num2))

Marker

颜色缩写:

二:绘制折线图

实例一:读取excel文件绘制简单折线图

import matplotlib.pyplot as pltimport pandas as pdplt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文乱码问题plt.figure(facecolor="grey", figsize=(8, 4)) # 设置画布的大小和颜色plt.grid(axis="y", c="grey", linestyle="-") # 设置网格线的样式,不显示y轴plt.title("成绩折线图", fontsize=14)plt.xlabel("姓名", fontsize=14)plt.ylabel("成绩", fontsize=14)# 读取excel数据df = pd.read_excel(r'D:\Pycharm\data\student_score.xlsx', sheet_name=0)x = df["姓名"]y1 = df["数学"]y2 = df["语文"]y3 = df["英语"]plt.plot(x, y1, marker="o", c="b", linestyle="--", linewidth=1)plt.plot(x, y2, marker="s", c="r", linestyle="-.", linewidth=1)plt.plot(x, y3, marker="p", c="g", linestyle="-", linewidth=1)plt.legend(["数学", "语文", "英语"], loc="lower right")plt.yticks(range(50, 150, 10)) # 设置y轴的刻度plt.show()

输出结果:

实例二:绘制正余弦函数

import matplotlib.pyplot as pltimport numpy as npplt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文乱码问题plt.rcParams['axes.unicode_minus']=False # 解决负号不显示问题x1 = np.arange(0, 4*np.pi, 0.1)y = np.sin(x1)x2 = np.arange(0, 3.5*np.pi, 0.1)z = np.cos(x2)plt.plot(y, linewidth=1, c="b")plt.plot(z, linewidth=1, c="r")plt.legend(["sin x", "cos x"])plt.title("正、余弦函数图像", fontsize=14)plt.show()

三:绘制柱形图

示例一:多柱状图

plt.bar(x, height,width,align="center",kwargs)

x:传递数值序列,指定条形图中x轴的刻度值

height:柱子的高度,y轴数据

width:条形图的宽度,默认为0.8

bottom:用于绘制堆叠条形图

align:对齐方式

kwargs:关键字参数,其他可选参数:color、alpha、label

plt.text(x,y,string,va,ha)

x,y:文本标签的坐标

string:标注的值

va,ha:垂直和水平的对其方式

# 绘制基本柱状图import pandas as pd import numpy as npimport matplotlib.pyplot as plt# 解决中文乱码问题plt.rcParams['font.sans-serif'] = ['SimHei']# 将坐标轴刻度线向内显示plt.rcParams['xtick.direction'] = "in"plt.rcParams['ytick.direction'] = "in"plt.figure(facecolor="grey",figsize=(8, 6))plt.grid(axis="y",linestyle="--",c="grey")plt.title("销售员业绩",fontsize=14)plt.xlabel("月份",fontsize=14)plt.ylabel("销量",fontsize=14)df=pd.read_excel(r'C:\Users\Desktop\销量.xlsx', sheet_name=0)# 建立两个空列表x0,monthx0=[]month=[]for i in range(1,13):month.append(str(i)+"月")x0.append(i)plt.xticks(range(1,13),month) # 定义x轴刻度范围x=np.array(x0) # 将列表x0转换为可以进行运算的y1=df["数学"]y2=df["语文"]y3=df["英语"]plt.bar(x-0.2,y1,width=0.2)plt.bar(x,y2,width=0.2)plt.bar(x+0.2,y3,width=0.2,alpha=0.5) # 为条形图的透明度plt.legend(["数学","英语","语文"])plt.show()

输出结果:

实例二:个性化柱状图

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['font.family'] = "Times New Roman"fig, ax = plt.subplots(figsize=(10, 5))# x轴不显示 plt.gca().axes.get_xaxis().set_visible(False)# x轴刻度不显示ax.tick_params(axis='x', direction='in', bottom=False)# 读取Excel文件df = pd.read_excel(r"D:\Pycharm\data\type.xlsx", sheet_name=0)x0 = df["type"]x = np.arange(len(x0))y1 = df[1977]y2 = df[2001]y3 = df[]plt.bar(x-0.2, y1, color="#130074", edgecolor="k", width=0.2)plt.bar(x, y2, color="#CB181B", edgecolor="k", width=0.2)plt.bar(x+0.2, y3, color="w", edgecolor="k", width=0.2)ax.spines['top'].set_visible(False)ax.spines['right'].set_visible(False)ax.spines['bottom'].set_visible(False)ax.set_xticks(x)ax.set_xticklabels(x0, size=10)plt.ylabel("areas(ha)", fontsize=14)plt.ylim(0, 250000)plt.legend(["1977", "2001", ""])plt.title("land use trend")plt.show()

输出结果:

四:绘制饼形图

plt.pie(x,labels,colors,pctdistance,labeldistance,autopct,startangle,radius,center,textprops)

x:每一块饼形图比例

labels:每一块饼形图外侧显示的说明文字

colors:各块饼图的颜色

labeldistance:标记的位置

autopct:设置饼图百分比,可以使用格式化字符串或format函数

startangle:起始绘制角度,默认是x轴正方向逆时针开始绘制

radius:饼形图的半径,默认值为1

center:浮点类型列表,可选参数,默认值为(0,0)表示图表中心位置

pctdistance:饼内标签所在位置,所在饼图半径的比例

textprops:设置标签和比例文字的格式,字典类型

wedgeprops:设置饼图的宽度,边框,字典类型

实例一:基本饼形图

import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']plt.figure(figsize=(10, 6))# 读取Excel文件df = pd.read_excel(r"D:\Pycharm\data\JD_手机销售数据.xlsx", sheet_name=0)x = df["北京出库销量"]labels = df["商品名称"]plt.pie(x, autopct="%0.1f%%")# 设置x,y轴刻度一致,保证饼形图为圆形plt.axis("equal")plt.title("京东各手机品牌出库销售分析", fontsize=14)plt.legend(df["商品名称"])plt.show()

输出结果:

实例二:嵌套饼形图

import matplotlib.pyplot as pltimport numpy as npplt.rcParams['font.sans-serif'] = ['SimHei']elements = ["面粉", "砂糖", "奶油", "草莓酱", "坚果"]weight1 = [40, 15, 20, 10, 15]weight2 = [30, 25, 15, 20, 10]plt.pie(weight1, autopct="%0.1f%%", radius=0.7, pctdistance=0.8,textprops=dict(color="w", fontsize=12), wedgeprops=dict(width=0.3, edgecolor="w"))plt.pie(weight2, autopct="%0.1f%%", pctdistance=0.85,textprops=dict(color="w", fontsize=12), wedgeprops=dict(width=0.3, edgecolor="w"))plt.axis("equal")plt.legend(elements)plt.show()

输出结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。