Matplotlib の面倒なレイヤー設定にはまだ悩まされています。 ?この Python 描画ツールキットをぜひ見てください。
- ProPlot ライブラリの紹介
- ProPlot サンプルデモンストレーション
ProPlot ライブラリの紹介##Python-matplotlib を使用してグラフを描画する場合、デフォルトの色と形式のテーマを使用できます。描画関数に慣れるのに役立つだけです。優れたビジュアライゼーション作品 (出版レベルであっても、少し芸術的なものであっても) をデザインしたい場合は、
color、scale などの多数の描画関数に精通する必要があります。 、軸、フォントなど。描画複数のサブプロットとなると、これらの操作は多大なエネルギーを消費し、必然的に長いコード記述につながり、エラーも発生しやすくなります。詳細については、私の以前の記事「Python-matplotlib Academic Scatter Chart EE Statistics and Drawing」および「Python-matplotlib 水平積み上げ縦棒グラフの描画」を参照してください。さらに、毎日の描画に matplotlib を使用する必要があり、頻繁にグラフを美しくする必要がある場合は、Proplot 描画パッケージが最適です。適応できないことを心配する必要はありません。人々は matplotlib. カプセル化を高度に開発し、描画機能を大幅に簡素化しました。以下にインストール方法と主な使用方法を簡単に紹介しますので、さらに詳しく知りたい場合は公式サイトを参照してください。 pip または conda を使用して直接インストールできます。 , もちろん、バージョンは継続的に更新されるため、次のコードを更新処理に使用することもできます: Proplot 描画チャートでは、matplotlib のように各描画プロパティを設定する必要はありません。提供されている format() 関数は、すべての設定を変更する形式を提供します一気に化する方法です。まず、次のような簡単な例を示します。 効果は次のとおりです。 スタイル (abcstyle)、位置 (abcloc) を実行することもできます。 、サイズ ( abcsize) 效果如下: 效果如下: 以上是我认为ProPlot 比较优秀的几点,当然,大家也可以自行探索,发现自己喜欢的技巧。 我们使用之前的推文数据进行实例操作,详细代码如下: 效果如下: 只是简单的绘制,其他的设置也需要熟悉绘图函数,这里就给大家做个简单的演示。 本期推文我们介绍了matplotlib非常优秀的科学图表绘图库PrpPlot, 在一定程度上极大了缩减了定制化绘制时间,感兴趣的同学可以持续关注这个库,当然,还是最好在熟悉matplotlib基本绘图函数及图层属性设置函数的基础上啊。
インストール
#for pip
pip install proplot
#for conda
conda install -c conda-forge proplot
#for pip
pip install --upgrade proplot
#for conda
conda upgrade proplot
format()簡略化されたコード
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import matplotlib as mpl
with mpl.rc_context(rc={'axes.linewidth': 1, 'axes.color': 'gray'}):
fig, axs = plt.subplots(ncols=2, sharey=True)
axs[0].set_ylabel('bar', color='gray')
for ax in axs:
ax.set_xlim(0, 100)
ax.xaxis.set_major_locator(mticker.MultipleLocator(10))
ax.tick_params(width=1, color='gray', labelcolor='gray')
ax.tick_params(axis='x', which='minor', bottom=True)
ax.set_xlabel('foo', color='gray')
この簡単な例から、Proplot の単純さがわかります。 import proplot as plot
fig, axs = plot.subplots(ncols=2)
axs.format(linewidth=1, color='gray')
axs.format(xlim=(0, 100), xticks=10, xtickminor=True, xlabel='foo', ylabel='bar')
A-b-c 上記のformat()#に加えて、複数のサブピクチャのシリアル番号を追加します。 ## コードを大幅に削減 量的にはより便利だと思う描画方法を導入しました - 複数のサブグラフの通し番号が自動的に追加されます
# 样本数据
import numpy as np
state = np.random.RandomState(51423)
data = 2 * (state.rand(100, 5) - 0.5).cumsum(axis=0)
import proplot as plot
fig, axs = plot.subplots(ncols=2)
axs[0].plot(data, lw=2)
axs[0].format(xticks=20, xtickminor=False)
axs.format(abc=True,abcstyle='(A)',abcsize=12,abcloc='ul',
suptitle='Abc label test', title='Title',
xlabel='x axis', ylabel='y axis'
)
plt.savefig(r'E:\Data_resourses\DataCharm 公众号\Python\学术图表绘制\ProPlot\abc_01.png',
dpi=900)
#カラーバーと凡例
##軸のカラーバーと凡例
import proplot as plot
import numpy as np
fig, axs = plot.subplots(nrows=2, share=0, axwidth='55mm', panelpad='1em')
axs.format(suptitle='Stacked colorbars demo')
state = np.random.RandomState(51423)
N = 10
# Repeat for both axes
for j, ax in enumerate(axs):
ax.format(
xlabel='data', xlocator=np.linspace(0, 0.8, 5),
title=f'Subplot #{j+1}'
)
for i, (x0, y0, x1, y1, cmap, scale) in enumerate((
(0, 0.5, 1, 1, 'grays', 0.5),
(0, 0, 0.5, 0.5, 'reds', 1),
(0.5, 0, 1, 0.5, 'blues', 2)
)):
if j == 1 and i == 0:
continue
data = state.rand(N, N) * scale
x, y = np.linspace(x0, x1, N + 1), np.linspace(y0, y1, N + 1)
m = ax.pcolormesh(
x, y, data, cmap=cmap,
levels=np.linspace(0, scale, 11)
)
ax.colorbar(m, loc='l', label=f'dataset #{i+1}')
plt.savefig(r'E:\Data_resourses\DataCharm 公众号\Python\学术图表绘制\ProPlot\colorbar_legend_02.png',
dpi=900)
import proplot as plot
import numpy as np
fig, axs = plot.subplots(ncols=3, nrows=3, axwidth=1.4)
state = np.random.RandomState(51423)
m = axs.pcolormesh(
state.rand(20, 20), cmap='grays',
levels=np.linspace(0, 1, 11), extend='both'
)[0]
axs.format(
suptitle='Figure colorbars and legends demo', abc=True,
abcloc='l', abcstyle='(a)', xlabel='xlabel', ylabel='ylabel'
)
fig.colorbar(m, label='column 1', ticks=0.5, loc='b', col=1)
fig.colorbar(m, label='columns 2-3', ticks=0.2, loc='b', cols=(2, 3))
fig.colorbar(m, label='stacked colorbar', ticks=0.1, loc='b', minorticks=0.05)
fig.colorbar(m, label='colorbar with length <1', ticks=0.1, loc='r', length=0.7)
时间刻度(Datetime ticks)
import proplot as plot
import numpy as np
plot.rc.update(
linewidth=1.2, fontsize=10, ticklenratio=0.7,
figurefacecolor='w', facecolor='pastel blue',
titleloc='upper center', titleborder=False,
)
fig, axs = plot.subplots(nrows=5, axwidth=6, aspect=(8, 1), share=0)
axs[:4].format(xrotation=0) # no rotation for these examples
# Default date locator
# This is enabled if you plot datetime data or set datetime limits
axs[0].format(
xlim=(np.datetime64('2000-01-01'), np.datetime64('2001-01-02')),
title='Auto date locator and formatter'
)
# Concise date formatter introduced in matplotlib 3.1
axs[1].format(
xlim=(np.datetime64('2000-01-01'), np.datetime64('2001-01-01')),
xformatter='concise', title='Concise date formatter',
)
# Minor ticks every year, major every 10 years
axs[2].format(
xlim=(np.datetime64('2000-01-01'), np.datetime64('2050-01-01')),
xlocator=('year', 10), xformatter='\'%y', title='Ticks every N units',
)
# Minor ticks every 10 minutes, major every 2 minutes
axs[3].format(
xlim=(np.datetime64('2000-01-01T00:00:00'), np.datetime64('2000-01-01T12:00:00')),
xlocator=('hour', range(0, 24, 2)), xminorlocator=('minute', range(0, 60, 10)),
xformatter='T%H:%M:%S', title='Ticks at specific intervals',
)
# Month and year labels, with default tick label rotation
axs[4].format(
xlim=(np.datetime64('2000-01-01'), np.datetime64('2008-01-01')),
xlocator='year', xminorlocator='month', # minor ticks every month
xformatter='%b %Y', title='Ticks with default rotation',
)
axs.format(
ylocator='null', suptitle='Datetime locators and formatters demo'
)
plot.rc.reset()
plt.savefig(r'E:\Data_resourses\DataCharm 公众号\Python\学术图表绘制\ProPlot\datetick.png',
dpi=900)
ProPlot 实例演示
#开始绘图
labels = ['L1', 'L2', 'L3', 'L4', 'L5']
data_a = [20, 34, 30, 35, 27]
data_b = [25, 32, 34, 20, 25]
data_c = [12, 20, 24, 17, 16]
x = np.arange(len(labels))
width = .25
fig, axs = plot.subplots(ncols=2, nrows=1, sharey=1, width=10,height=4)
#for mark, data in zip()
axs[0].plot(x,y1, marker='s',c='k',lw=.5,label='D1',markersize=8)
axs[0].plot(x,y2, marker='s',c='k',ls='--',lw=.5,markersize=8,markerfacecolor='white',markeredgewidth=.4,label='D2')
axs[0].plot(x,y3,marker='^',c='k',lw=.5,markersize=8,markerfacecolor='dimgray',markeredgecolor='dimgray',
label='D3')
axs[0].plot(x,y4,marker='^',c='k',lw=.5,markersize=8,label='D4')
axs[1].bar(x-width/2, data_a,width,label='category_A',color='#130074',ec='black',lw=.5)
axs[1].bar(x+width/2, data_b, width,label='category_B',color='#CB181B',ec='black',lw=.5)
axs[1].bar(x+width*3/2, data_c,width,label='category_C',color='#008B45',ec='black',lw=.5)
#先对整体进行设置
axs.format(ylim=(0,40),
xlabel='', ylabel='Values',
abc=True, abcloc='ur', abcstyle='(A)',abcsize=13,
suptitle='ProPlot Exercise'
)
#再对每个子图进行设置
axs[0].format(ylim=(10,40),title='Multi-category scatter plot')
axs[1].format(title='Multi-category bar plot',xticklabels=['L1', 'L2', 'L3', 'L4', 'L5'])
plt.savefig(r'E:\Data_resourses\DataCharm 公众号\Python\学术图表绘制\ProPlot\test_01.png',
dpi=900)
plt.show()
总结
以上がMatplotlib の面倒なレイヤー設定にはまだ悩まされています。 ?この Python 描画ツールキットをぜひ見てください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。
