plt.plot画蓝色双箭头
时间: 2023-11-09 21:01:56 浏览: 140
可以使用matplotlib中的annotate函数来画蓝色双箭头,示例代码如下:
```
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.annotate('', xy=(0.5, 0.5), xytext=(0.2, 0.2), arrowprops=dict(arrowstyle='<->', color='blue'))
plt.show()
```
其中,`xy`参数表示箭头终点的坐标,`xytext`参数表示箭头起点的坐标,`arrowprops`参数用于设置箭头的样式和颜色。
相关问题
#2012-2013年犯罪未遂数量折线图 import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False #数据收集 x=np.arange(2012,2024) y1=np.array([20,39,855,1078,802,696,728,681,735,668,86,1]) y2=np.array([15,18,399,601,371,325,285,175,134,26,1,0]) #绘制折线图 plt.plot(x,y1) plt.plot(x,y2) plt.title("2012-2023年云南省及昆明市刑事案件犯罪未遂数量折线图") #坐标轴 plt.xlabel("时间") plt.ylabel("数量") #网格 plt.grid(linewidth=0.3) #图例 lines=plt.plot(x,y1,x,y2) plt.legend(lines,['云南省','昆明市'],shadow=True) #参考线(平均值) plt.axhline(y=532,linestyle="--",color="red") #指向性注释文本 plt.annotate("最大值", # 注释的标签内容 xy=(2015,1078), # 要被注释的地方位置坐标 xytext=(2016,1100), # 注释文本的位置 weight="bold", # 注释文本字体粗细 color='g', arrowprops= dict(arrowstyle='->', connectionstyle='arc3, rad=0.2', color='g') # 指向注释点的箭头属性 ) #数据标记 plt.plot([2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023],[3,39,855,1078,802,696,728,681,735,668,86,1],marker='o') plt.plot([2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023],[15,18,399,601,371,325,285,175,134,26,1,0],marker='o') plt.show() 为什么图形和图例颜色不同
在这个修改后的代码中,绘制两个折线图时分别使用了不同的 `plt.plot()` 指定了线条样式的颜色,因此第一个折线图和图例的颜色是蓝色,第二个折线图和图例的颜色是橙色。同时,在 `plt.legend()` 中指定了每个标签对应的颜色,使得图例颜色和折线图颜色对应。因此,图形和图例颜色不同是因为它们对应的颜色不同。
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函数显示图例。
绘制的图像如下:
可以看到,图像上方有正弦和余弦函数的图像,下方有填充区域和注释。
阅读全文