- 线图
-
import numpy as np import pandas as pd import matplotlib.pyplot as plt def draw_line(): df = pd.read_excel(r"D:\data\股价清单.xlsx") plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 # SimHei 黑体, Kaiti 楷体, LiSu 隶书, FangSong 仿宋, YouYuan 幼圆, STSong 宋体 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 plt.figure(figsize=(10,4)) #生成画布并设置画布尺寸 plt.plot(range(15), df.loc[:,"收盘价"], '-*') #共15个数据点,x轴需要15个刻度点 plt.plot(range(15), df.loc[:,"开盘价"], '-o') #共15个数据点,x轴需要15个刻度点 plt.plot(range(15), df.loc[:,"最高价"], '-v') #共15个数据点,x轴需要15个刻度点 plt.plot(range(15), df.loc[:,"最低价"], '-^') #共15个数据点,x轴需要15个刻度点 plt.title('股价走势图') # 设置标题 plt.xlabel('时间') # 设置x轴标签 plt.ylabel('股价') # 设置y轴标签 plt.xticks(range(15), df.index, rotation=30) # 设置刻度的标签,倾斜度 plt.legend(['收盘价','开盘价','最高价','最低价']) # 设置图例 plt.show() # 展示图形 if __name__ == '__main__': draw_line()
- 绘制效果
-
- 饼图
- 代码
import numpy as np import pandas as pd import matplotlib.pyplot as plt # 饼图的作用是展示分组数据在整体中的占比 def draw_pie(): np.random.seed(1) # 为保证代码每次运行都能得到相同的一组数据,设置随机数种子 df = pd.DataFrame(data={" 方 案 ":["plan A", "plan B", "plan C", "plan D", "plan E"] ,"投票人数":np.random.randint(10,100,5)}) plt.rcParams['font.sans-serif']=['Simhei'] #显示中文 plt.rcParams['axes.unicode_minus']=False #设置显示中文后,符号显示受影响,显示负号 plt.figure(figsize=(6,6)) plt.pie(df.iloc[:,1], #饼图数据源 labels=df.iloc[:,0], #设置每个扇形对应的标签 autopct='%.2f%%', #设置百分比精度 textprops={'fontsize':13}) #设置饼图中文字的字号 plt.title(' 方案投票占比饼图 ', fontsize=14) plt.show() if __name__ == '__main__': draw_pie()
- 绘制效果
- 代码
- 条形图(纵向,柱形图)
- 代码
import numpy as np import pandas as pd import matplotlib.pyplot as plt # 柱形图:展示分类型变量数据分布的常用图形, def draw_bar(): np.random.seed(1) df = pd.DataFrame(data={" 方 案 ": ["plan A", "plan B", "plan C", "plan D", "plan E"] , "投票人数": np.random.randint(10, 100, 5)}) plt.rcParams['font.sans-serif']=['Simhei'] #显示中文 plt.rcParams['axes.unicode_minus']=False #设置显示中文后,符号显示受影响,显示负号 plt.figure(figsize=(8,4)) plt.bar(df.iloc[:,0], df.iloc[:,1], width=0.6) plt.title(" 各方案投票人数柱形图 ", fontsize=14) plt.ylabel(" 投票人数 ", fontsize=13) plt.xlabel(" 方案 ", fontsize=13) plt.show() if __name__ == '__main__': draw_bar()
- 绘制效果
- 代码
- 条形图(横向)
- 代码
import numpy as np import pandas as pd import matplotlib.pyplot as plt # 条形图:展示分类型变量数据分布的常用图形 def draw_barh(): np.random.seed(1) df = pd.DataFrame(data={" 方 案 ": ["plan A", "plan B", "plan C", "plan D", "plan E"] , "投票人数": np.random.randint(10, 100, 5)}) plt.rcParams['font.sans-serif']=['Simhei'] #显示中文 plt.rcParams['axes.unicode_minus']=False #设置显示中文后,符号显示受影响,显示负号 plt.figure(figsize=(8,4)) plt.barh(df.sort_values("投票人数").iloc[:,0], df.sort_values("投票人数").iloc[:,1], height=0.6) plt.title(" 各方案投票人数柱形图 ", fontsize=14) plt.ylabel(" 方案 ", fontsize=13) plt.xlabel(" 投票人数 ", fontsize=13) plt.show() if __name__ == '__main__': draw_barh()
- 绘制效果
- 代码
- 直方图
- 代码
import numpy as np import pandas as pd import matplotlib.pyplot as plt # 直方图:用于数值型数据,展示连续变量数据分布的一种图形,用条形的宽度和高度(面积)表示频数的分布 def draw_hist(): np.random.seed(1) data = np.random.normal(loc=80,scale=20, size=200).astype(int) plt.hist(data, [30,40,50,60,70,80,90,100,110,120,130]) plt.xticks([30,40,50,60,70,80,90,100,110,120,130]) plt.show() if __name__ == '__main__': draw_hist()
- 绘制效果
- 代码
- 散点图
- 代码
import numpy as np import pandas as pd import matplotlib.pyplot as plt # 散点图: 使用二维坐标展示两个变量的关系的一种图形 def draw_scatter(): df = pd.DataFrame(data={" 产量 ":[2200, 3300, 4400, 5500, 5700, 7300, 8000] ,"降雨量":[22,39,55,66,105,100,122]}) plt.rcParams['font.sans-serif']=['Kaiti'] plt.rcParams['axes.unicode_minus']=False plt.scatter(df.iloc[:, 1], df.iloc[:, 0]) plt.title(" 降水量与产量关系图 ", fontsize=14) plt.ylabel(" 产量 ", fontsize=13) plt.xlabel(" 降水量 ", fontsize=13) plt.show() if __name__ == '__main__': draw_scatter()
- 绘制效果
- 代码
- 箱线图
- 代码
import numpy as np import pandas as pd import matplotlib.pyplot as plt # 箱线图是由一组数据的中位数、上四分位数、下四分位数、距离上四分位数1.5倍四分位据(IQR)内的最大值、距离下四分位苏1.5倍四分位距(IQR)内的最小 # 值这5个特征绘制而成,主要反映数据分布的特征,还可以进行多组数据分布特征的比较 def draw_boxplot(): np.random.seed(1) df = pd.DataFrame({" 语文 ": np.random.randint(70, 150, 10), " 英语 ": np.random.randint(60,150,10), " 数学 ": np.random.randint(40,150,10)}) plt.rcParams['font.sans-serif'] = ['Kaiti'] plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(8,6)) plt.boxplot([df.iloc[:,0], df.iloc[:, 1], df.iloc[:, 2]], labels=['语文','英语','数学']) plt.show() if __name__ == '__main__': draw_boxplot()
- 绘制效果
- 代码
- 基于Seaborn绘图库图
- 带核密度估计的直方图
- 代码
import numpy as np import pandas as pd import matplotlib.pyplot as plt # Seaborn是一个基于Matplotlib的Python数据可视化库,提供了一个用于绘制有吸引力和信息丰富的统计图形的高级界面 import seaborn as sns # 带核密度估计的直方图 # 直方图旨在通过分箱和计数观察近似生成数据的潜在概率密度函数,Seaborn中的核密度估计为同一个问题提供了不同的解决方案。 # 核密度估计图不使用离散箱,而使用高斯核平滑观察,产生连续的密度估计。 def draw_sns_displot(): np.random.seed(1) data = np.random.normal(loc=80, scale=20, size=200).astype(int) sns.displot(data, bins=[30,40,50,60,70,80,90,100,110,120,130], kde=True) # kde=True 显示核密度估计曲线 plt.show() if __name__ == '__main__': draw_sns_displot()
- 绘制效果
- 代码
- 二元分布图
- 代码
import numpy as np import pandas as pd import matplotlib.pyplot as plt # Seaborn是一个基于Matplotlib的Python数据可视化库,提供了一个用于绘制有吸引力和信息丰富的统计图形的高级界面 import seaborn as sns # 二元分布图 # 绘制联合分布和边际分布,使用两个变量的边际分布扩充二元关系图或二元分布图 def draw_sns_jointplot(): np.random.seed(0) mean, cov = [0,1],[(1,.5),(.5,1)] data = np.random.multivariate_normal(mean, cov, 200) df = pd.DataFrame(data, columns=["x", "y"]) df.head() # 绘制联合图 # sns.jointplot(x="x", y="y", data=df) # 绘制散点图 #sns.relplot(x="x", y="y", data=df) # 绘制带核密度估计的二元分布图 # sns.jointplot(x="x", y="y", data=df, kind="kde") # 绘制密度曲线图 sns.displot(data=df, x="x", y="y", kind="kde") plt.show() if __name__ == '__main__': draw_sns_jointplot()
- 绘制效果1
- 绘制效果2
- 绘制效果3
- 代码
- 热力图
- 代码
import numpy as np import pandas as pd import matplotlib.pyplot as plt # Seaborn是一个基于Matplotlib的Python数据可视化库,提供了一个用于绘制有吸引力和信息丰富的统计图形的高级界面 import seaborn as sns # 热力图:查看变量间的关系强弱 # 在热力图中,颜色越深,两者的负相关关系越强;颜色越浅,两者的正相关关系越强 def draw_sns_heatmap(): np.random.seed(0) df0 = pd.DataFrame(np.random.uniform(-1,1,(7,7)), index=list("abcdefg"), columns=list("ABCDEFG")) plt.figure(figsize=(8,6)) sns.set(font_scale=1.5) # 设置字体大小 sns.heatmap(df0) plt.show() if __name__ == '__main__': draw_sns_heatmap()
- 绘制效果
- 代码
- 带核密度估计的直方图
Python可视化之Matplotlit绘图库
最新推荐文章于 2023-06-12 22:35:29 发布