hdml指的是什么接口
335
2022-08-27
Python绘制图像(Matplotlib)(Ⅷ)(python matplotlib画三维图)
from calendar import day_namefrom matplotlib.ticker import FormatStrFormatterimport matplotlib as mplimport matplotlib.pyplot as pltimport numpy as np
def no1(): """ 向画布中任意位置添加任意数量的坐标轴 :return: """ # axes(rect, frameon=True,axisbg='y') # rect = [left, bottom, width, height] 坐标轴的左侧边缘和底部边缘距离画布边缘的距离 # width, height: 坐标轴的宽度和高度 # frameon: 是否绘制坐标轴的四条轴脊 # axisbg: 填充坐标轴的背景的颜色 plt.axes([0.05, 0.7, .3, .3], frameon=True, fc='y', aspect='equal') plt.plot(np.arange(3), [0, 1, 0], color='blue', linewidth=2, linestyle='--') plt.axes([0.3, 0.4, .3, .3], frameon=True, fc='y', aspect='equal') plt.plot(2 + np.arange(3), [0, 1, 0], color='blue', linewidth=2, linestyle='-') plt.axes([0.55, 0.1, .3, .3], frameon=True, fc='y', aspect='equal') plt.plot(4 + np.arange(3), [0, 1, 0], color='blue', linewidth=2, linestyle=':') plt.savefig(r"E:\Programmer\PYTHON\Matplotlib实践\figure\Figure(Unit " r"8)\no1.png") plt.show()
def no2(): """ 调整已经确定的坐标轴的显示、隐藏与刻度范围等问题 :return: """ plt.axes([0.05, 0.7, .3, .3], frameon=True, fc='y', aspect='equal') plt.plot(np.arange(3), [0, 1, 0], color='blue', linewidth=2, linestyle='--') plt.ylim(0, 1.5) # 将图形变得紧凑 plt.axis("image") plt.axes([0.3, 0.4, .3, .3], frameon=True, fc='y', aspect='equal') plt.plot(2 + np.arange(3), [0, 1, 0], color='blue', linewidth=2, linestyle='-') plt.ylim(0, 15) # axis([xmin, xmax, ymin, ymax]) plt.axis([2.1, 3.9, 0.5, 1.9]) plt.axes([0.55, 0.1, .3, .3], frameon=True, fc='y', aspect='equal') plt.plot(4 + np.arange(3), [0, 1, 0], color='blue', linewidth=2, linestyle=':') plt.ylim(0, 1.5) # 是否显示坐标轴 plt.axis("off") plt.savefig(r"E:\Programmer\PYTHON\Matplotlib实践\figure\Figure(Unit " r"8)\no2.png") plt.show()
def no3(): """ 调用函数setp()设置刻度标签 :return: """ ax1 = plt.subplot(221) plt.setp(ax1.get_xticklabels(), visible=True) plt.setp(ax1.get_xticklines(), visible=True) plt.grid(True, axis='x') ax2 = plt.subplot(222) plt.setp(ax2.get_xticklabels(), visible=True) plt.setp(ax2.get_xticklines(), visible=False) plt.grid(True, axis='x') ax3 = plt.subplot(223) plt.setp(ax3.get_xticklabels(), visible=False) plt.setp(ax3.get_xticklines(), visible=True) plt.grid(True, axis='x') ax4 = plt.subplot(224) plt.setp(ax4.get_xticklabels(), visible=False) plt.setp(ax4.get_xticklines(), visible=False) plt.grid(True, axis='x') plt.savefig(r"E:\Programmer\PYTHON\Matplotlib实践\figure\Figure(Unit " r"8)\no3.png") plt.show()
def no4(): """ 棉棒图的定制化展示 :return: """ x = np.linspace(0.5, 2 * np.pi, 20) y = np.random.randn(20) markerline, stemlines, baseline = plt.stem(x, y) plt.setp(markerline, color='chartreuse', marker='D') plt.setp(stemlines, linestyle='-.') baseline.set_linewidth(2) plt.savefig(r"E:\Programmer\PYTHON\Matplotlib实践\figure\Figure(Unit " r"8)\no4.png") plt.show()
def no5(): """ 坐标轴的样式和位置的定制化展示 :return: """ fig = plt.figure() ax = fig.add_axes([0.2, 0.2, 0.7, 0.7]) ax.spines['bottom'].set_position(('outward', 10)) ax.spines['left'].set_position(('outward', 10)) ax.spines['top'].set_color("none") ax.spines['right'].set_color("none") x = np.arange(1, 8, 1) y = 2 * x + 1 ax.scatter(x, y, c='orange', s=50, edgecolors='orange') for tickline in ax.xaxis.get_ticklines(): tickline.set_color("blue") tickline.set_markersize(8) tickline.set_markeredgewidth(5) for ticklabel in ax.get_xmajorticklabels(): ticklabel.set_color("slateblue") ticklabel.set_fontsize(15) ticklabel.set_rotation(20) ax.yaxis.set_major_formatter(FormatStrFormatter(r"$\yen%1.1f$")) plt.xticks(x, day_name[0:7], rotation=20) ax.yaxis.set_ticks_position("left") ax.xaxis.set_ticks_position("bottom") for tickline in ax.yaxis.get_ticklines(): tickline.set_color("lightgreen") tickline.set_markersize(8) tickline.set_markeredgewidth(5) for ticklabel in ax.get_ymajorticklabels(): ticklabel.set_color('green') ticklabel.set_fontsize(18) ax.grid(ls=':', lw=1, color='gray', alpha=0.5) plt.savefig(r"E:\Programmer\PYTHON\Matplotlib实践\figure\Figure(Unit " r"8)\no5.png") plt.show()
def no6(): """ 移动坐标轴的位置 :return: """ mpl.rcParams["font.sans-serif"] = ["SimHei"] mpl.rcParams["axes.unicode_minus"] = False x = np.linspace(-2 * np.pi, 2 * np.pi, 200) y = np.sin(x) y1 = np.cos(x) ax = plt.subplot(111) ax.plot(x, y, ls='-', lw=2, label=r'$\sin(x)$') ax.plot(x, y1, ls='-', lw=2, label=r'$\cos(x)$') ax.legend(loc='lower left') plt.title(r"$\sin(x)$" + "和" + r"$\cos(x)$" + "函数") ax.set_xlim(-2 * np.pi, 2 * np.pi) plt.xticks([-2 * np.pi, -3 * np.pi / 2, -1 * np.pi, -1 * (np.pi) / 2, 0, (np.pi) / 2, np.pi, 3 * np.pi / 2, 2 * np.pi], [r"$-2\pi$", r"$-3\pi/2$", r"$-\pi$", r"$-\pi/2$", "$0$", r"$\pi/2$", "$\pi$", "$3\pi/2$", "$2\pi$"]) ax.spines['top'].set_color("none") ax.spines['right'].set_color("none") ax.spines['bottom'].set_position(('data', 0)) ax.spines['left'].set_position(('data', 0)) ax.xaxis.set_ticks_position("bottom") ax.yaxis.set_ticks_position("left") plt.savefig(r"E:\Programmer\PYTHON\Matplotlib实践\figure\Figure(Unit " r"8)\no6.png") plt.show()
本篇博文特别感谢刘大成的《Python数据可视化之matplotlib实践》
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~