- 전체 소스
더보기
import sys
from PyQt5.QtChart import QLineSeries, QChart, QChartView
from PyQt5.QtCore import QSize, Qt
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QGridLayout,
class MainScreen(QMainWindow):
def __init__(self, wid, hei):
super().__init__()
self.setWindowTitle("TEST SCREEN") # 프로젝트 타이틀 설정
self.setGeometry(0, 0, int(wid * .5), int(hei * .5)) # 화면 사이즈 설정
self.mainWidget = QWidget() # 메인 위젯 생성
self.mainLayout = QGridLayout(self.mainWidget) # 메인 레이아웃 생성 및 메인 위젯 연결
self.mainLayout.setSpacing(100)
self.setCentralWidget(self.mainWidget) # 메인윈도우 센트럴위젯에 메인 위젯 연결
# 라인 차트 생성 (타이틀)
self.sample1(0, 0)
# 라인 차트 (라인 데이터 삽입)
self.sample2(0, 1)
# 라인 차트 (라인 색상 변경)
self.sample3(1, 0)
# 라인 차트 (두개 라인 삽입)
self.sample4(1, 1)
self.showMaximized()
def sample1(self, row, col):
# 시리즈 생성
series = QLineSeries()
# 차트 생성
chart = QChart()
chart.legend().hide()
chart.addSeries(series)
chart.createDefaultAxes() # 기본 좌표 생성
chart.setTitle("Line Chart") # 타이틀
# 차트 뷰 생성
chart_view = QChartView(chart)
chart_view.setRenderHint(QPainter.Antialiasing) # 안티알리아싱 설정
self.mainLayout.addWidget(chart_view, row, col) # 메인 레이아웃에 라인에디트 위젯 추가
def sample2(self, row, col):
# 시리즈 생성
series = QLineSeries()
# 좌표 추가
series.append(1, 1)
series.append(2, 2)
series.append(3, 3)
series.append(4, 3)
series.append(5, 4)
series.append(6, 3)
series.append(7, 7)
series.append(8, 5)
series.append(9, 4)
# 차트 생성
chart = QChart()
chart.legend().hide()
chart.addSeries(series) # 차트에 시리즈 추가
chart.createDefaultAxes() # 기본 좌표 생성
chart.setTitle("Line Chart") # 타이틀
# 차트 뷰 생성
chart_view = QChartView(chart)
chart_view.setRenderHint(QPainter.Antialiasing) # 안티알리아싱 설정
self.mainLayout.addWidget(chart_view, row, col) # 메인 레이아웃에 라인에디트 위젯 추가
def sample3(self, row, col):
# 시리즈 생성
series = QLineSeries()
series.setColor(QColor(Qt.red))
# 좌표 추가
series.append(1, 1)
series.append(2, 2)
series.append(3, 3)
series.append(4, 3)
series.append(5, 4)
series.append(6, 3)
series.append(7, 7)
series.append(8, 5)
series.append(9, 4)
# 차트 생성
chart = QChart()
chart.legend().hide()
chart.addSeries(series) # 차트에 시리즈 추가
chart.createDefaultAxes() # 기본 좌표 생성
chart.setTitle("Line Chart") # 타이틀
# 차트 뷰 생성
chart_view = QChartView(chart)
chart_view.setRenderHint(QPainter.Antialiasing) # 안티알리아싱 설정
self.mainLayout.addWidget(chart_view, row, col) # 메인 레이아웃에 라인에디트 위젯 추가
def sample4(self, row, col):
# 시리즈1 생성
series1 = QLineSeries()
series1.setColor(QColor(Qt.red))
# 좌표 추가
series1.append(1, 1)
series1.append(2, 2)
series1.append(3, 3)
series1.append(4, 3)
series1.append(5, 4)
series1.append(6, 3)
series1.append(7, 7)
series1.append(8, 5)
series1.append(9, 4)
# 시리즈1 생성
series2 = QLineSeries()
series2.setColor(QColor(Qt.green))
# 좌표 추가
series2.append(1, 6)
series2.append(2, 5)
series2.append(3, 3)
series2.append(4, 2)
series2.append(5, 1)
series2.append(6, 2)
series2.append(7, 4)
series2.append(8, 7)
series2.append(9, 10)
# 차트 생성
chart = QChart()
chart.legend().hide()
chart.addSeries(series1) # 차트에 시리즈1 추가
chart.addSeries(series2) # 차트에 시리즈2 추가
chart.createDefaultAxes() # 기본 좌표 생성
chart.setTitle("Line Chart") # 타이틀
# 차트 뷰 생성
chart_view = QChartView(chart)
chart_view.setRenderHint(QPainter.Antialiasing) # 안티알리아싱 설정
self.mainLayout.addWidget(chart_view, row, col) # 메인 레이아웃에 라인에디트 위젯 추가
if __name__ == '__main__':
app = QApplication(sys.argv)
size: QSize = app.primaryScreen().size() # 모니터 사이즈
main = MainScreen(size.width()/2, size.height())
sys.exit(app.exec_())
1. 라인 차트 생성 (차트 타이틀)
# 시리즈 생성
series = QLineSeries()
# 차트 생성
chart = QChart()
chart.legend().hide()
chart.addSeries(series)
chart.createDefaultAxes() # 기본 좌표 생성
chart.setTitle("Line Chart") # 타이틀 설정
# 차트 뷰 생성
chart_view = QChartView(chart)
chart_view.setRenderHint(QPainter.Antialiasing) # 안티알리아싱 설정
self.mainLayout.addWidget(chart_view, row, col) # 메인 레이아웃에 라인에디트 위젯 추가
2. 차트 데이터 삽입
# 시리즈 생성
series = QLineSeries()
# 좌표 추가
series.append(1, 1)
series.append(2, 2)
series.append(3, 3)
series.append(4, 3)
series.append(5, 4)
series.append(6, 3)
series.append(7, 7)
series.append(8, 5)
series.append(9, 4)
# 차트 생성
chart = QChart()
chart.legend().hide()
chart.addSeries(series) # 차트에 시리즈 추가
chart.createDefaultAxes() # 기본 좌표 생성
chart.setTitle("Line Chart") # 타이틀
# 차트 뷰 생성
chart_view = QChartView(chart)
chart_view.setRenderHint(QPainter.Antialiasing) # 안티알리아싱 설정
self.mainLayout.addWidget(chart_view, row, col) # 메인 레이아웃에 라인에디트 위젯 추가
3. 라인 색상 변경
# 시리즈 생성
series = QLineSeries()
series.setColor(QColor(Qt.red))
# 좌표 추가
series.append(1, 1)
series.append(2, 2)
series.append(3, 3)
series.append(4, 3)
series.append(5, 4)
series.append(6, 3)
series.append(7, 7)
series.append(8, 5)
series.append(9, 4)
# 차트 생성
chart = QChart()
chart.legend().hide()
chart.addSeries(series) # 차트에 시리즈 추가
chart.createDefaultAxes() # 기본 좌표 생성
chart.setTitle("Line Chart") # 타이틀
# 차트 뷰 생성
chart_view = QChartView(chart)
chart_view.setRenderHint(QPainter.Antialiasing) # 안티알리아싱 설정
self.mainLayout.addWidget(chart_view, row, col) # 메인 레이아웃에 라인에디트 위젯 추가
4. 라인 두개 생성
# 시리즈1 생성
series1 = QLineSeries()
series1.setColor(QColor(Qt.red))
# 좌표 추가
series1.append(1, 1)
series1.append(2, 2)
series1.append(3, 3)
series1.append(4, 3)
series1.append(5, 4)
series1.append(6, 3)
series1.append(7, 7)
series1.append(8, 5)
series1.append(9, 4)
# 시리즈2 생성
series2 = QLineSeries()
series2.setColor(QColor(Qt.green))
# 좌표 추가
series2.append(1, 6)
series2.append(2, 5)
series2.append(3, 3)
series2.append(4, 2)
series2.append(5, 1)
series2.append(6, 2)
series2.append(7, 4)
series2.append(8, 7)
series2.append(9, 10)
# 차트 생성
chart = QChart()
chart.legend().hide()
chart.addSeries(series1) # 차트에 시리즈1 추가
chart.addSeries(series2) # 차트에 시리즈2 추가
chart.createDefaultAxes() # 기본 좌표 생성
chart.setTitle("Line Chart") # 타이틀
# 차트 뷰 생성
chart_view = QChartView(chart)
chart_view.setRenderHint(QPainter.Antialiasing) # 안티알리아싱 설정
self.mainLayout.addWidget(chart_view, row, col) # 메인 레이아웃에 라인에디트 위젯 추가
'PYQT5 > QtChart' 카테고리의 다른 글
[파이썬, PYQT5-QtChart] 캔들스틱차트 생성, 타이틀 설정, 데이터 삽입, 색상 변경, 좌표축 설정 (0) | 2022.07.20 |
---|