Python的 matplotlib画图,怎么把子图的每个横坐标显示出来? python matplotlib模块 如何画两张图出来

python matplotlib\u600e\u4e48\u8ba9x\u8f74\u53ea\u663e\u793a\u56fa\u5b9a\u4e2a\u6570\u7684\u6807\u7b7e

1\u3001\u9996\u5148\u70b9\u51fb\u952e\u76d8 win+r\uff0c\u6253\u5f00\u8fd0\u884c\u7a97\u53e3\uff1b\u5728\u7a97\u53e3\u4e2d\u8f93\u5165\u201ccmd"\uff0c\u70b9\u51fb\u786e\u5b9a\uff0c\u6253\u5f00windows\u547d\u4ee4\u884c\u7a97\u53e3\u3002

2\u3001\u5728cmd\u547d\u4ee4\u884c\u7a97\u53e3\u4e2d\u8f93\u5165"python"\uff0c\u8fdb\u5165python\u4ea4\u4e92\u7a97\u53e3\u3002

3\u3001\u5f15\u5165matplotlib\u6a21\u5757\u7684pyplot()\u51fd\u6570\uff0c\u5e76\u91cd\u547d\u540d\u4e3apy;\u5f15\u5165numpy\u6a21\u5757\uff0c\u5e76\u91cd\u547d\u540d\u4e3anp\u3002

4\u3001\u4f7f\u7528\u51fd\u6570np.arrange(-5,5,0.01)\u521b\u5efa\u53d8\u91cfx\u7684\u53d6\u503c\u8303\u56f4\uff0c\u662f\u4e00\u4e2a\u4e00\u7ef4\u6570\u7ec4\uff0c\u4f7f\u7528y=2**x,\u521b\u5efay\u662f\u4e0e\u81ea\u53d8\u91cfx\u76f8\u5bf9\u5e94\u7684\u4e00\u7ef4\u6570\u7ec4\u3002

5\u3001\u4f7f\u7528\u51fd\u6570plt.plot(x,y)\u7ed8\u5236\u6307\u6570\u51fd\u6570y=2**x\u7684\u51fd\u6570\u56fe\u50cf\u3002

6\u3001\u6700\u540e\u4f7f\u7528\u51fd\u6570plt.show()\u663e\u793a\u6574\u4e2a\u4e00\u5143\u4e00\u6b21\u51fd\u6570\u7684\u56fe\u50cf\uff0c\u5c31\u5b8c\u6210\u4e86\u3002

python matplotlib\u6a21\u5757 \u5982\u4f55\u753b\u4e24\u5f20\u56fe\u51fa\u6765\u7684\u65b9\u6cd5\uff1a
\u4ee3\u7801\u5982\u4e0b\u6240\u793a\uff1a
import numpy as np
import matplotlib.pyplot as plt
#\u521b\u5efa\u81ea\u53d8\u91cf\u6570\u7ec4
x= np.linspace(0,2*np.pi,500)
#\u521b\u5efa\u51fd\u6570\u503c\u6570\u7ec4
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x*x)
#\u521b\u5efa\u56fe\u5f62
plt.figure(1)
'''
\u610f\u601d\u662f\u5728\u4e00\u4e2a2\u884c2\u5217\u51714\u4e2a\u5b50\u56fe\u7684\u56fe\u4e2d\uff0c\u5b9a\u4f4d\u7b2c1\u4e2a\u56fe\u6765\u8fdb\u884c\u64cd\u4f5c\uff08\u753b\u56fe\uff09\u3002
\u6700\u540e\u9762\u90a3\u4e2a1\u8868\u793a\u7b2c1\u4e2a\u5b50\u56fe\u3002\u90a3\u4e2a\u6570\u5b57\u7684\u53d8\u5316\u6765\u5b9a\u4f4d\u4e0d\u540c\u7684\u5b50\u56fe
'''
#\u7b2c\u4e00\u884c\u7b2c\u4e00\u5217\u56fe\u5f62
ax1 = plt.subplot(2,2,1)
#\u7b2c\u4e00\u884c\u7b2c\u4e8c\u5217\u56fe\u5f62
ax2 = plt.subplot(2,2,2)
#\u7b2c\u4e8c\u884c
ax3 = plt.subplot(2,1,2)
#\u9009\u62e9ax1
plt.sca(ax1)
#\u7ed8\u5236\u7ea2\u8272\u66f2\u7ebf
plt.plot(x,y1,color='red')
#\u9650\u5236y\u5750\u6807\u8f74\u8303\u56f4
plt.ylim(-1.2,1.2)
#\u9009\u62e9ax2
plt.sca(ax2)
#\u7ed8\u5236\u84dd\u8272\u66f2\u7ebf
plt.plot(x,y2,'b--')
plt.ylim(-1.2,1.2)
#\u9009\u62e9ax3
plt.sca(ax3)
plt.plot(x,y3,'g--')
plt.ylim(-1.2,1.2)
plt.show()

\u9644\u4e0a\u6548\u679c\u56fe\u3002

ax = subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,**fig_kw)  

创建画布和子图。

nrowsncols表示将画布分割成几行几列 ,

sharexsharey表是共用xy轴的设置。

squeeze  bool

a.默认参数为True:额外的维度从返回的Axes(轴)对象中挤出,对于N*1或1*N个子图,返回一个1维数组,对于N*M,N>1和M>1返回一个2维数组。

b.为False,不进行挤压操作:返回一个元素为Axes实例的2维数组,即使它最终是1x1。

subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。

subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。

gridspec_kw:字典类型,可选参数。把字典的关键字传递给GridSpec构造函数创建子图放在网格里(grid)。

**fig_kw:把所有详细的关键字参数传给figure()函数。

可见你没有办法单独设置某个子图的ax的。



import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号

fig = plt.figure(figsize=(20, 20), dpi=80)
ax1 = fig.add_subplot(2,2,1)

x = range(5)

y = [2, 2, 5, 2, 4]

s = ['数量1', '数量2', '数量3', '数量4', '数量5']
plt.bar(x, y, width=0.5)
plt.xticks(x, s, rotation=270)
plt.xlabel('数据情况' )
plt.ylabel('数量(个)')

for xl, yl in zip(x, y):
plt.text(xl, yl+0.3, str(yl), ha='center', va='bottom', fontsize=10.5)
ax2 = fig.add_subplot(2,2,2)

plt.bar(range(4), [3, 4,2,3], width=0.3)
ax3 = fig.add_subplot(2,2,3)
plt.bar(range(4), [3, 4,2,3], width=0.3)

ax4 = fig.add_subplot(2,2,4)
plt.bar(range(4), [3, 4,2,3], width=0.3)
plt.show()

首先你得把代码放上来,别人才能回答呀

我也表示想知道,你解决了吗

在python中使用matplotlib画图,默认横坐标都是由小到大(1,2,3,4,5),但我现在项目特殊需求,想让横坐标值由大到小逆序显示(5,4,3,2,1),如何实现呢?

import matplotlib.pyplot as plt

plt.figure()

ax1 = plt.subplot(121)

ax2 = plt.subplot(122)

xlist = [1,2,3,4,5]

ylist = [10,20,30,40,50]

plt.sca(ax1)

plt.title("Test X Label")

plt.xlabel("X")

plt.ylabel("Y")

plot1, = plt.plot(xlist,ylist,'ro')

plt.show()

扩展阅读:黑马java视频 ... python中的map函数 ... python手机版下载官方 ... python mainloop函数 ... python reshape ... python官网 ... python编程入门自学 ... python代码自动生成器 ... python基础代码大全 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网