1 手把手数模系列——什么?你还在苦苦学代码画图?

大噶好 , 今天是清明节 , 有一天假期 , 可以稍微休息一下~
在数模中 , 我们有时会遇到数据分析的题目 , 比如在2022年工大出版社杯 , 就是根据葡萄酒的几种参数来预测葡萄酒的好坏等 , 在这些题目中 , 我们总是要根据已有的数据画出各种分析图 , 如小提琴图、箱型图、堆叠图、三维线性图等等 , 很多人不得不去学visio、等画图工具 , 但不仅效率低 , 而且有时画出的图也不是很美观 , 有什么办法呢?
这时候 , 我们的人工智能就登场了(当当当当~) , 实际上 , 我们根本不需要去学习那些繁琐的画图软件 , 只需要做一名工程师就可以了 。下面我将为大家演示如何利用画图
1.打开 , 输入以下内容(这里我们以随机的数据为例)
这时我们可以看到 , ai自动按照我们的指令生成了相应的代码(图片中的代码最后放在后面~) , 在本例中我使用的语言 , 大家也可以使用或者自己喜好的软件来
2.将上述代码复制到编译器中 , 直接运行即可
运行代码 , 效果如下:

1  手把手数模系列——什么?你还在苦苦学代码画图?

文章插图
看的出来 , 图片还是很漂亮的 , 这样我们就可以根据已有的数据得到自己想要的图片了!
注1:根据实际需求 , 我们也可以对图片进行调整 , 例如如下例子 , 我们让曲线变为虚线 , 并采用了冷色调
1  手把手数模系列——什么?你还在苦苦学代码画图?

文章插图
注2:对于ai输出代码的某一行 , 如果不理解 , 也可以直接问它
注3:上述代码画图是需要安装一些库的 , 比如、、等
我在安装的时候遇到了以下两个问题:1.安装的话 , 需要先安装scipy;2.安装时报错 , 如下图所示:
原因是缺少库 , 安装后得到解决 。
另外 , 安装这些库时只需要在的终端输入指令即可 , 或者win+R调出终端(但我没有尝试这个) , 如果直接使用可能会很慢 , 也有报错的可能 , 在这里我推荐大家使用清华源:
pip库的名字 -i---host
好了 , 以上就是本期内容 , 感谢大家的观看!有任何问题也可以私信我哦~最后代码放在下面:
import numpy as npimport matplotlib.pyplot as pltimport seaborn as snsimport plotly.graph_objs as goimport plotly.express as px# 初始化随机数种子np.random.seed(123)# 随机生成五种数据data1 = np.random.rand(20, 20)data2 = np.random.normal(0, 1, (50, 50))data3 = np.random.randint(0, 5, (30, 30))data4 = np.random.exponential(scale=1.0, size=(40, 40))data5 = np.random.uniform(low=-1, high=1, size=(25, 25))# 绘制热力图plt.figure(figsize=(8, 6))sns.heatmap(data1, cmap='RdYlBu_r', annot=True, fmt='.2f')plt.title('Heatmap of Data 1')plt.show()# 绘制线性图x = np.linspace(-np.pi, np.pi, 100)y1 = np.sin(x)y2 = np.cos(x)plt.figure(figsize=(8, 6))plt.plot(x, y1, 'r-', linewidth=2, label='sin(x)')plt.plot(x, y2, 'b-', linewidth=2, label='cos(x)')plt.legend(loc='upper left')plt.title('Line Plot of sin(x) and cos(x)')plt.xlabel('x')plt.ylabel('y')plt.show()# 绘制小提琴图data = http://www.kingceram.com/post/[data2.flatten(), data3.flatten(), data4.flatten(), data5.flatten()]labels = ['Data 2', 'Data 3', 'Data 4', 'Data 5']plt.figure(figsize=(8, 6))sns.violinplot(data=data, inner="quartile", scale='width')plt.title('Violin Plot of Multiple Data')plt.xticks([0, 1, 2, 3], labels)plt.show()# 绘制箱型图plt.figure(figsize=(8, 6))sns.boxplot(data=http://www.kingceram.com/post/data, whis=1.5)plt.title('Box Plot of Multiple Data')plt.xticks([0, 1, 2, 3], labels)plt.show()# 生成三维线形图的数据t = np.linspace(0, 10, 100)x = np.sin(t)y = np.cos(t)z = tfig = go.Figure(data=[go.Scatter3d(x=x, y=y, z=z, mode='lines')])fig.update_layout(title='3D Line Plot')fig.show()# 绘制堆叠图df = px.data.gapminder()df2007 = df.query("year == 2007").sort_values(by="pop", ascending=False)fig = px.bar(df2007,x="pop", y="continent", color="continent",title="Population of Continents in 2007",hover_name="country", width=800, height=400)fig.show()