ax = plt.gca() ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data', 0)) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data',0))
时间: 2023-05-15 09:05:14 浏览: 287
这是一段 Matplotlib 的代码,用于设置坐标轴的位置和刻度。其中,ax.xaxis.set_ticks_position('bottom') 和 ax.yaxis.set_ticks_position('left') 用于设置刻度的位置,ax.spines['bottom'].set_position(('data', 0)) 和 ax.spines['left'].set_position(('data',0)) 用于设置坐标轴的位置。
相关问题
import numpy as np import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('music_message_4.csv', header=None) # 对收藏数取对数 dom = [] for i in df[3]: dom.append(np.log(int(i.replace('万', '0000')))) df['collection'] = dom # 设置图片显示属性,字体及大小 plt.rcParams['font.sans-serif'] = ['STXihei'] plt.rcParams['font.size'] = 12 plt.rcParams['axes.unicode_minus'] = False # 设置图片显示属性 fig = plt.figure(figsize=(16, 8), dpi=80) ax = plt.subplot(1, 1, 1) ax.patch.set_color('white') # 设置坐标轴属性 lines = plt.gca() # 设置坐标轴颜色 lines.spines['right'].set_color('none') lines.spines['top'].set_color('none') lines.spines['left'].set_color((64/255, 64/255, 64/255)) lines.spines['bottom'].set_color((64/255, 64/255, 64/255)) lines.xaxis.set_ticks_position('none') lines.yaxis.set_ticks_position('none') # 绘制直方图,设置直方图颜色 ax.hist(df['collection'], bins=30, alpha=0.7, color=(21/255, 47/255, 71/255)) ax.set_title('华语歌单收藏数量分布情况', fontsize=20) # 显示图片 plt.show()
这段代码是用来读取一个 CSV 文件并绘制直方图的。首先,它使用 pandas 库的 `read_csv` 函数读取名为 `music_message_4.csv` 的文件,并将其存储在名为 `df` 的 DataFrame 中。然后,它对该 DataFrame 中的第三列进行处理,将收藏数量转换为对数形式,并将结果存储在名为 `collection` 的新列中。
接下来,代码使用 matplotlib 库来设置绘图属性。设置了字体样式为华文细黑,字体大小为12,并解决了坐标轴上的负号显示问题。然后,创建一个大小为16x8英寸的图像,并在其中创建一个子图。
接着,代码设置坐标轴的属性,包括颜色和位置。设置了坐标轴的颜色,将右边和顶部的边框颜色设为无色,将左边和底部的边框颜色设为灰色。然后,移动坐标轴的刻度线位置。
最后,代码使用 `hist` 函数绘制直方图,并设置直方图的颜色。设置了直方图的标题为"华语歌单收藏数量分布情况"。
最后调用 `plt.show()` 函数显示图像。
import numpy as np import matplotlib.pyplot as plt x=np.linspace(-np.pi,np.pi,256,endpoint=True) sin,cos=np.sin(x),np.cos(x) plt.plot(x,sin,"b-",lw=2.5,label="sin()") plt.plot(x,cos,"r-",lw=2.5,label="cos()") plt.xlim(x.min()*1.5,x.max()*1.5) plt.ylim(cos.min()*1.5,cos.max()*1.5) plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$-\pi/2$',r'$\pi$']) plt.yticks([-1,0,1]) t=2*np.pi/3 plt.annotate(r'$\sin{\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$', xy=(t,np.sin(t)), xycoords='data', xytext=(+10,+30), textcoords='offset points', arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.1")) ax=plt.gca() ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data',0)) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data',0)) plt.plot(x,sin) plt.plot(x,cos) plt.fill_between(x,np.abs(x)<0.5,sin,sin>0.5,color='g',alpha=0.8) plt.fill_between(x,cos,where=(-2.5<x)&(x<-0.5),color='purple') plt.grid(True) plt.legend(loc="upper left",fontsize=12) plt.show()
这是一段使用Matplotlib库绘制正弦和余弦函数图像的代码,并在图像上添加注释和填充区域的示例。
代码解释:
- 首先导入numpy和matplotlib库。
- 使用np.linspace函数生成一个从-pi到pi的等差数列x,并分别计算x对应的sin和cos值。
- 使用plt.plot函数绘制sin和cos函数的图像,其中"b-"和"r-"表示蓝色和红色的实线,lw参数表示线宽,label参数表示图例标签。
- 使用plt.xlim和plt.ylim函数设置x和y轴的范围。
- 使用plt.xticks和plt.yticks函数设置x和y轴的刻度值,其中使用LaTeX语法渲染标签。
- 使用plt.annotate函数在图像上添加注释,其中xy参数表示注释的位置,xytext参数表示注释文本的位置,arrowprops参数表示箭头的样式和连接方式。
- 使用ax.xaxis.set_ticks_position和ax.yaxis.set_ticks_position函数设置x和y轴的刻度位置,使用ax.spines函数设置x和y轴的边框位置。
- 使用plt.fill_between函数填充sin函数和x轴之间的区域,并在x的绝对值小于0.5和sin的值大于0.5时填充绿色,alpha参数表示填充区域的透明度。
- 使用plt.fill_between函数填充cos函数和x轴之间的区域,并在x的取值在[-2.5, -0.5]之间时填充紫色。
- 使用plt.grid函数显示网格线,使用plt.legend函数显示图例。
绘制的图像如下:
可以看到,图像上方有正弦和余弦函数的图像,下方有填充区域和注释。
阅读全文