claude を使用して、科学研究論文で使用できる、ラベル付きの情報を含む散布図の Python コードを作成します。

まず、散布図を描くためのデータ一式が必要ですが、ここでは claude さんに、道級市 30 の標高データと標高標準偏差データのデータ一式を作成してもらいます。前者はその地域の平均標高を反映し、後者は標高の分散度を反映しており、結果は以下のとおりです。

ここに画像の説明を挿入
次のように、claude を使用して散布図コードを記述します。
ここに画像の説明を挿入
vscode でコードを実行した結果、次のように中国語を表示できません。
ここに画像の説明を挿入
matlab ツールキットは中国語をサポートしていないため、次のようにフォントをインポートし、claude にコードを変更させる必要があります。
ここに画像の説明を挿入

変更したコードを次のように実行します。
ここに画像の説明を挿入

chatgpt と比較すると、Claude の方がコードを書くのが賢いことがわかりました。中国語の表示に関しては、chatgpt は何度も解決できませんが、Claude は 1 回で完了します。実はこの2つは起源が同じで、クロードはchatgptの副社長が数人で作ったものなので基本的には同じなのですが、幸いクロードはファイルのアップロードが可能で、入力制限や利用回数の制限もchatgptより強いです。

完全なコードは次のとおりです。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei'] 
plt.rcParams['axes.unicode_minus'] = False

data = pd.DataFrame({
    '市名称': ['南京市', '无锡市', '徐州市', '常州市', '苏州市', '南通市',  
               '连云港市', '淮安市', '盐城市', '扬州市', '镇江市', '泰州市',
               '宿迁市', '济南市', '青岛市', '淄博市', '枣庄市', '东营市',
               '烟台市', '潍坊市', '济宁市', '泰安市', '威海市', '日照市',
               '临沂市', '德州市', '聊城市', '滨州市', '菏泽市', '郑州市'],
    '平均高程(米)': [20, 10, 60, 15, 12, 80, 55, 18, 35, 10, 40, 90, 100,  
                      400, 50, 100, 150, 200, 80, 120, 140, 180, 60, 40, 130,
                      90, 220, 160, 190, 110], 
    '高程标准差(米)': [5, 3, 8, 4, 3, 10, 7, 5, 6, 2, 5, 12, 15, 20, 8, 10, 12,
                        15, 8, 10, 12, 15, 6, 5, 10, 8, 18, 12, 15, 10]
})

plt.scatter(data['平均高程(米)'], data['高程标准差(米)'], s=80, label='数据点') 

for i, txt in enumerate(data['市名称']):
    plt.annotate(txt, (data['平均高程(米)'][i], data['高程标准差(米)'][i]), fontsize=8)
    
fit = np.polyfit(data['平均高程(米)'], data['高程标准差(米)'], 1)
fit_fn = np.poly1d(fit)
plt.plot(data['平均高程(米)'], fit_fn(data['平均高程(米)']), '--k', label='拟合线')

plt.xlabel('平均高程(米)')
plt.ylabel('高程标准差(米)')
plt.title('地级市高程数据散点图')

# 图例置于右下角
plt.legend(loc='lower right') 

# 拟合公式置于左上角
plt.text(20, 6, '拟合公式:\ny={:.2f}x+{:.2f}'.format(fit[0], fit[1]), fontsize=10)

plt.show()

おすすめ

転載: blog.csdn.net/weixin_42464154/article/details/131870206