赞
踩
目录
5. plt.xlabel() & plt.ylabel()
Matplotlib 是 Python 的绘图库。
pip install matplotlib
import matplotlib.pyplot as plt
默认不支持中文。
- import matplotlib
- matplotlib.rc("font", family='Microsoft YaHei')
下载某字体文件并放在项目里。
网址(任选一个字体):https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese
代码:
每个有中文显示的地方,都需要设置fontproperties。
- import matplotlib
- zhfont = matplotlib.font_manager.FontProperties(fname="../项目名/应用app名/static/font/SourceHanSansSC-Regular.otf")
- plt.title("书籍出售情况", fontproperties=zhfont) # 图表标题
- plt.xlabel("出售书籍", fontproperties=zhfont) # 横坐标轴标签
- plt.legend(loc='upper left', prop=zhfont) # 显示图例(一定要在plot的后面)
- plt.xticks(list(books)[::3], rotation=45, fontproperties=zhfont) # 设置横坐标数据样式:[::3] 间隔3个显示一次;rotation 文字旋转度数;fontproperties设置中文字体
- plt.plot(x轴数据, y轴数据, color='red', marker='o', linestyle='--', label='值标签') # 画图
- plt.plot(x轴数据, y轴数据, 'g+', label='值标签') # 画图。其中g+表示color&marker
① 'r'、'y'、'g'、'c'、'b'、'k'、'w'(红、黄、绿、青、蓝、黑、白)
② 'red'等全称
③ 十六进制或RGBA格式
点'.'、圆圈'o'、三角'v'、方块's'、星'*'、六角形'h'、加号'+'、菱形'd'
实线'-'、虚线'--'、虚点'-.'、点线':'
显示画布
新建图形(画布)对象
fig = plt.figure(figsize=(5,3), facecolor='pink') # figsize设置画布宽高;facecolor设置背景色
设置图表标题
plt.title("Matplotlib demo") # 图表标题
设置坐标轴标签
- plt.xlabel("出售书籍") # x轴标签
- plt.ylabel("价格(¥)") # y轴标签
处理标题遮挡
创建多个子图
- fig,axes=plt.subplots(2,2) # 画布子图分区(2*2个区域)
- ax1=axes[0,0] # 设置子图1在0,0的位置(其中,0,0表示从左往右,逐行排序的第1个位置)
- ax1.plot([1,2,3,4,5], [1,2,3,4,5]) # 子图数据
- ax2=axes[0,1] # 设置分区2在0,1的位置(其中,0,1表示从左往右,逐行排序的第2个位置)
- ax2.plot([1,3,5,7,9], [-1,2,-3,4,-5]) # 子图数据
- ax2.grid(color='g', linestyle='--', linewidth=1,alpha=0.3) # 子图样式
- ax2.legend(prop={'size': 10})
- plt.show()
创建多个子图(固定行列)
- fig = plt.figure(figsize=(5,3), facecolor='pink') # 创建图形对象。figsize设置画布宽高;facecolor设置背景色
- ax1 = fig.add_subplot(2,2,1) # 第一个位置
- ax1.plot([1,2,3,4,5], [1,2,3,4,5]) # 分区1数据
- ax2 = fig.add_subplot(2,2,4) # 第四个位置
- ax2.plot([1,2,3,4,5], [-1,-2,-3,-4,-5]) # 分区2数据
- plt.show()
创建多个子图(百分比布局)
- fig = plt.figure() # 创建图形对象
- ax1=fig.add_subplot(1,2,2) # 设置主图1*2的第2个位置
- ax1.plot([1,2,3,4,5], [1,2,3,4,5]) # 数据
- ax1.set_title('主图') # 标题
- ax2 = fig.add_axes([0.64,0.68,0.1,0.1]) # 设置子图,add_axes中阵列含义:[距离左64%,距离底68%,宽10%,高10%]
- ax2.plot([0.1,0.2,0.3,0.4,0.5], [0.1,0.2,0.3,0.4,0.5], 'r') # 数据
- ax2.set_title('图中图') # 标题
- plt.show()
- fig = plt.figure()
- ax1 = fig.add_subplot(211)
- ax1.set_title('Matplotlib demo') # 标题
- ax1.set_xlabel('书籍') # 设置子图的x轴标签
- ax1.set_ylabel('价格') # 设置子图的y轴标签
- # ax1.set_xticks([1, 2, 3]) # 设置x轴刻度
- ax1.set_yticks([0,20,40,60,80]) # 设置y轴刻度
- # ax1.set_xlim(0,100) # 设置x轴取值范围
- ax1.set_ylim(0,100) # 设置y轴取值范围
- ax1.set_xticklabels(['科幻','教育','文学']) # 设置 x 轴刻度标签
- import matplotlib.pyplot as plt
- import matplotlib
- matplotlib.rc("font", family='Microsoft YaHei')
- def get_data():
- books = ['数据结构', '数据库原理', '操作系统', '计算机组成原理'] # x轴的数据
- prices = [40,10,60,80] # y轴的数据
- actual_prices = [50,95,80,45] # y轴的数据
- plt.plot(books, prices, color='red', marker='o', linestyle='--', label='预售价') # 画图
- plt.plot(books, actual_prices, color='blue', marker='.', linestyle='solid', label='实际售价') # 画图
- plt.title("Matplotlib demo") # 图表标题
- plt.xlabel("出售书籍") # x轴轴标签
- plt.ylabel("价格(¥)") # y轴轴标签
- plt.ylim(20,100) # 控制Y轴的显示范围
- plt.legend(loc='upper left') # 显示图例(一定要在plot的后面)
- plt.xticks(list(books)[::3], rotation=45) # 设置x轴刻度样式:[::3] 间隔3个显示一次;rotation 文字旋转度数;fontproperties设置中文字体
- plt.show()
-
- if __name__ == "__main__":
- get_data()
- import matplotlib.pyplot as plt
- import matplotlib
- matplotlib.rc("font", family='Microsoft YaHei')
- def get_data():
- fig, ax = plt.subplots(figsize=(4,3), layout='constrained')
- books = ['数据结构', '数据库原理', '操作系统', '计算机组成原理'] # 横坐标的数据
- prices = [40,10,60,80] # 纵坐标的数据
- ax.set(ylim=(0, 90))
- ax.bar(books, prices)
- plt.show()
- if __name__ == "__main__":
- get_data()
- pie_data = [10, 20, 30, 80]
- colors = plt.get_cmap('Blues')(np.linspace(0.2, 0.9, len(pie_data))) # 根据饼图数据设置渐变颜色
- fig, ax = plt.subplots()
- labels = ['科幻', '科学', '文学', '教育']
- wedges, texts, autotexts = ax.pie(pie_data, # 饼图数据
- colors=colors, # 饼图渐变色
- radius=3, # 饼图半径
- center=(4, 4), # 饼图的圆中心位置
- wedgeprops={"linewidth": 1, "edgecolor": "white"}, # 分块边界线样式
- frame=True, # 显示坐标轴
- textprops=dict(color='r'), # 文本颜色
- labels=labels, # 显示每块标题标签
- autopct='%.2f%%', # 展示每块百分比值;若要用autopct属性,则pie()方法回传的变量有三个
- shadow=True, # 显示阴影
- startangle=30 # 分块起始角度(x轴正向计算度数,逆时针)
- )
- ax.set(xlim=(0, 8), xticks=np.arange(1, 8), # 设置x轴的刻度范围
- ylim=(0, 8), yticks=np.arange(1, 8)) # 设置y轴的刻度范围
- ax.legend(wedges, # 图例的标签颜色
- labels, # 图例的标签数据
- title="demo", # 图例标题
- loc="center left",
- bbox_to_anchor=(1, 0.5, 0, 0) # (x, y, width, height)
- ) # 图例
- plt.show()
- books = ['数据结构', '数据库原理', '操作系统', '计算机组成原理'] # x轴的数据
- prices = [40,10,60,80] # y轴的数据
- actual_prices = [50,95,80,45] # y轴的数据
- plt.plot(books, prices, color='red', marker='o', linestyle='--', label='预售价') # 折线图
- plt.bar(books, actual_prices, color='blue', label='实际售价') # 条形图
- plt.title("Matplotlib demo") # 图表标题
- plt.xlabel("出售书籍") # x轴轴标签
- plt.ylabel("价格(¥)") # y轴轴标签
- plt.ylim(0,100) # 控制Y轴的显示范围
- plt.legend(loc='upper left') # 显示图例(一定要在plot的后面)
- plt.xticks(list(books)[::1], rotation=0) # 设置x轴刻度样式:[::1] 间隔1个显示一次;rotation 文字旋转度数;fontproperties设置中文字体
- plt.show()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。