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

     大噶好,今天是清明节,有一天假期,可以稍微休息一下~

        在数模中,我们有时会遇到数据分析的题目,比如在2022年工大出版社杯,就是根据葡萄酒的几种参数来预测葡萄酒的好坏等,在这些题目中,我们总是要根据已有的数据画出各种分析图,如小提琴图、箱型图、堆叠图、三维线性图等等,很多人不得不去学visio、origin等画图工具,但不仅效率低,而且有时画出的图也不是很美观,有什么办法呢? 

         这时候,我们的人工智能ChatGPT就登场了(当当当当~😎),实际上,我们根本不需要去学习那些繁琐的画图软件,只需要做一名promot 工程师就可以了。下面我将为大家演示如何利用ChatGPT画图😀

1.打开ChatGPT,输入以下内容(这里我们以随机的数据为例)

         这时我们可以看到,ai自动按照我们的指令生成了相应的代码(图片中的代码最后放在后面~),在本例中我使用的Python语言,大家也可以使用Matlab或者自己喜好的软件来

2.将上述代码复制到编译器中,直接运行即可

        运行代码,效果如下:

 

 

 

         

        看的出来,图片还是很漂亮的🥰,这样我们就可以根据已有的数据得到自己想要的图片了!

 

注1:根据实际需求,我们也可以对图片进行调整,例如如下例子,我们让曲线变为虚线,并采用了冷色调

 

 

 注2:对于ai输出代码的某一行,如果不理解,也可以直接问它

 

注3:上述Python代码画图是需要安装一些库的,比如matplotlib、seaborn、plotly等 

我在安装的时候遇到了以下两个问题:1.安装seaborn的话,需要先安装scipy;2.安装plotly时报错,如下图所示:

原因是缺少packaging库,安装后得到解决。

另外,安装这些库时只需要在pycharm的终端输入指令即可,或者win+R调出终端(但我没有尝试这个),如果直接使用pip install可能会很慢,也有报错的可能,在这里我推荐大家使用清华源

pip install 库的名字 -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn 

 

好了,以上就是本期内容,感谢大家的观看!有任何问题也可以私信我哦~最后代码放在下面:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.graph_objs as go
import 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 = [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=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 = t
fig = 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()
import numpy as np
import matplotlib.pyplot as plt

# 初始化随机数种子
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))

# 绘制线性图
x = np.linspace(-np.pi, np.pi, 100)
y = np.sin(x)

plt.figure(figsize=(8, 6))
plt.plot(x, y, linestyle='--', color='deepskyblue', linewidth=2)
plt.title('Line Plot of sin(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值