私は現在、pythonモジュールopenpyxlを試しています。仕事中のタスクを自動化し、スプレッドシートを自動的に生成しようとしています。必要なシートの1つについては、集計されたデータから散布図を生成する必要があります。ただし、散布図は2つの点を結ぶ複数の線で構成する必要があるため、散布図の個々のx/y系列はそれぞれ2つの点のみを接続する必要があります。Openpyxl charts - ランダムな未接続セルからのデータ系列は可能ですか?
from openpyxl import Workbook
from openpyxl.chart import (
ScatterChart,
Reference,
Series,
)
wb = Workbook()
ws = wb.active
rows = [
['Size', 'Batch 1', 'Batch 2'],
[2, 40, 30],
[3, 40, 25],
[4, 50, 30],
[5, 30, 25],
[6, 25, 35],
[7, 20, 40],
]
for row in rows:
ws.append(row)
chart = ScatterChart()
chart.title = "Scatter Chart"
chart.style = 13
chart.x_axis.title = 'Size'
chart.y_axis.title = 'Percentage'
xvalues = Reference(ws, min_col=1, min_row=2, max_row=7)
for i in range(2, 4):
values = Reference(ws, min_col=i, min_row=1, max_row=7)
series = Series(values, xvalues, title_from_data=True)
chart.series.append(series)
ws.add_chart(chart, "A10")
wb.save("scatter.xlsx")
Iスキャッタに接続したい2点ただし、X(及びY)座標:
一般私はチャートはこの小さな例のように生成される散乱openpyxl資料から求めポイントは隣接するセルに配置されません。 だから私は「Ctrlキー」を保持することにより、Excelで手動でデータ系列をインポートし、二つのセルを選択したときに、私はこのような何かを得る:
「!!シート$ A $ 4;シート$ A $ 6」
の代わり
シート!$ A $ 4:$ A $ 6 '
セルをドラッグして範囲を選択すると、
隣接していないセルが2つしかない場合、これは明確なmin_row/min_col/max_rowなどがないことを意味しますが、xとyの両方のセルペアのリストのみです。接続された/隣接する範囲の代わりにセルのリストとしてopenpyxlでデータ系列を作成する方法はありますか?
助けていただければ幸いです! :)
あなたがdownvoteするつもりなら、少なくとも私に理由を教えて... – ryry1985